Posts Tagged ‘Form’

Validarea unui formular

Validarea formularelor a pus probleme oricarui programator ce s-a lovit vreodata de interactiunea cu utilizatorii lipsiti de experienta sau, pur si simplu, neatenti. Presupunem ca avem urmatorul formular si ne dorim ca cele doua campuri text sa fie validate in functie de o lungime minima.

<mx:Form width=”60%” height=”100%”>
<mx:FormHeading label=”Adaugare” width=”243″ height=”42″/>
<mx:FormItem>
<mx:Label text=”Nume” />
<mx:TextInput id=”lastName” />
</mx:FormItem>
<mx:FormItem>
<mx:Label text=”Prenume” />
<mx:TextInput id=”firstName” />
</mx:FormItem>
<mx:FormItem>
<mx:Label text=”Starea” />
<mx:CheckBox id=”active” />
</mx:FormItem>
</mx:Form>
<mx:ControlBar>
<mx:Button label=”Salveaza modificarile” click=”save()” />
<mx:Button label=”Renunta” click=”close()” />
</mx:ControlBar>

Pentru a realiza acest lucru definim doua validatoare pentru cele doua campuri:

<mx:StringValidator
id=”firstNameValidator”
source=”{firstName}”
property=”text”
minLength=”3″
tooShortError=”Introduceti cel putin 3 caractere”
requiredFieldError=”Introduceti numele”
/>

<mx:StringValidator
id=”lastNameValidator”
source=”{lastName}”
property=”text”
minLength=”3″
tooShortError=”Introduceti cel putin 3 caractere”
requiredFieldError=”Introduceti numele”
/>

In continuare cream un array ce va contine lista cu validatorii ce se aplica pe elementele formularului:

validatorArr = new Array(firstNameValidator, lastNameValidator);

Parcurgand array-ul de mai sus se poate determina daca formularul in cauza este sau nu valid:

private function validForm(validatorArr:Array):Boolean
{
var validatorErrorArray:Array = Validator.validateAll(validatorArr);
var isValidForm:Boolean = validatorErrorArray.length == 0;
if (isValidForm) {
return true;
} else {
var err:ValidationResultEvent;
var errorMessageArray:Array = [];
for each (err in validatorErrorArray) {
var errField:String = FormItem(err.currentTarget.source.parent).label
errorMessageArray.push(errField + “: ” + err.message);
}
}
return false;
}

Prin urmare punand conditia in modul urmator obtinem ce ne dorim:

if (this.validForm(validatorArr))

{

// actions

}

Tags: , , ,

2 Comments



SetPageWidth