How to solve Lightning Input type=“text”?
I am working on a lightning page where I have to use lightning input type= text. And this value I have to pass JS controller for the validation check. But when I am writing code below it is working fine:
({ clickCreateAccount : function(component, event, helper) { var validExpense = true; var accnme = component.find("fstname"); var aname = accnme.get("v.value"); if (($A.util.isEmpty(aname))){ validExpense = false; accnme.set("v.errors", [{message:"Name can't be blank."}]); } else { accnme.set("v.errors", null); } } })
For the same JS controller once I am writing the code on its throwing error:
error:
This page has an error. You might just need to refresh it. Access Check Failed! AttributeSet.set(): 'errors' of component 'markup://lightning:input {18:0} {fstname}' is not visible to 'markup://c:NewAccount_contact {3:0}'. Failing descriptor: {c:NewAccount_contact} I want to use "lightning:input" as my input text field and set the value to the field. Please help me with this!
Your issue is on these lines, where you are setting v.errors:
if (($A.util.isEmpty(aname))){ validExpense = false; accme.set("v.errors", [{message:"Name can't be blank."}]); } else { accme.set("v.errors", null); }
You will not face lightning:input error as long as you use ui:inputText as this component supports errors attribute, which you can set from the client side controller. Refer more on attributes supported by this component on its documentation here. When you change your code to lightning:input, this component does not support errors. And that is what the error message is complaining about: 'errors' of component 'markup://lightning:input {18:0} {fastname}' is not visible You will be required to handle the error messaging on the component using what is available or by writing some additional validations in your JS controller. Below is a snippet from the documentation for lightning:input, you can refer more to its documentation here. Input Validation Client-side input validation is available for this component. For example, an error message is displayed when a URL or email address is expected for an input type of url or email.