Today I ran into a situation where I needed to clear the error flag from a form field in Flex. My code uses a datagrid to present a list of items to edit. You could click to edit an item, or click an Add button to add a new item.
I ran into a problem though. If I clicked to edit a field, hit cancel, and then hit Add, I was seeing the values from the previous edit in the form field. Well that was easy enough. I added this to my cancel operation:
username.text = ''; password.text = ''; firstname.text = ''; lastname.text = ''; email.text = '';
This worked, but when I returned to add an item, the form was displaying red borders around each field. My code to set the form items to empty strings was also triggering the form validation.
I did a bit of looking around in the API and couldn't find a simple way to "reset" the validators I had applied to my form. Turns out I found a solution on Adobe: Flex Quick Starts: Validating Data.
Turns out you can manually change a property on the text field. If you set errorString to an empty string, the red "You messed up" border goes away:
username.text = ''; username.errorString = ''; password.text = ''; password.errorString = ''; firstname.text = ''; firstname.errorString = ''; lastname.text = ''; lastname.errorString = ''; email.text = ''; email.errorString = '';
Feels a little hackish to me. Anyone know a nicer way?