Fiz um exemplo simples de validação de formulários, esta validação também pode ser utilizado com os validadores CNPJ, CPF, E PIS que coloquei a alguns dias no blog.
Exemplo.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:TitleWindow title="Exemplo de Validação de Campos" x="102" y="40" width="438" layout="absolute">
<mx:Form x="0" y="0" width="100%" height="100%">
<mx:FormItem label="Código" width="100%" required="true">
<mx:TextInput id="txiCodigo" width="50"/>
</mx:FormItem>
<mx:FormItem label="Nome" width="100%" required="true">
<mx:TextInput id="txiNome" width="296"/>
</mx:FormItem>
<mx:FormItem label="Sexo" width="100%" required="true">
<mx:ComboBox id="cbbSexo" prompt="Selecione o sexo">
<mx:dataProvider>
<mx:Array>
<mx:Object data='M' label='Masculino'/>
<mx:Object data='F' label='Feminino'/>
</mx:Array>
</mx:dataProvider>
</mx:ComboBox>
</mx:FormItem>
<mx:FormItem label="Data" width="100%" required="true">
<mx:DateField id="dtfData"/>
</mx:FormItem>
</mx:Form>
<mx:ControlBar horizontalAlign="right">
<mx:Button label="Salvar" click="salvar()"/>
</mx:ControlBar>
</mx:TitleWindow>
<mx:Array id="arrCampos">
<mx:StringValidator source="{txiCodigo}" property="text" required="true" requiredFieldError="Campo Obrigatório"/>
<mx:StringValidator source="{txiNome}" property="text" required="true" requiredFieldError="Campo Obrigatório"/>
<mx:StringValidator source="{dtfData}" property="text" required="true" requiredFieldError="Campo Obrigatório"/>
<mx:NumberValidator source="{cbbSexo}" property="selectedIndex" minValue="0" lowerThanMinError="Campo Obrigatório" requiredFieldError="Campo Obrigatório"/>
</mx:Array>
<mx:Script>
<![CDATA[
import mx.validators.Validator;
import mx.controls.Alert;
import mx.events.ValidationResultEvent;
public function salvar():void
{
if(!validaForm(arrCampos))
return
//CONTINUAR O PROCESSO DE GRAVAÇÃO
}
public function validaForm(ArrayCampos:Array):Boolean
{
var validatorErrorArray:Array = Validator.validateAll(ArrayCampos);;
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);
}
Alert.show(errorMessageArray.join("\n\n"), "ATENÇÃO: Dados Inválidos", Alert.OK);
}
return false;
}
]]>
</mx:Script>
</mx:Application>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:TitleWindow title="Exemplo de Validação de Campos" x="102" y="40" width="438" layout="absolute">
<mx:Form x="0" y="0" width="100%" height="100%">
<mx:FormItem label="Código" width="100%" required="true">
<mx:TextInput id="txiCodigo" width="50"/>
</mx:FormItem>
<mx:FormItem label="Nome" width="100%" required="true">
<mx:TextInput id="txiNome" width="296"/>
</mx:FormItem>
<mx:FormItem label="Sexo" width="100%" required="true">
<mx:ComboBox id="cbbSexo" prompt="Selecione o sexo">
<mx:dataProvider>
<mx:Array>
<mx:Object data='M' label='Masculino'/>
<mx:Object data='F' label='Feminino'/>
</mx:Array>
</mx:dataProvider>
</mx:ComboBox>
</mx:FormItem>
<mx:FormItem label="Data" width="100%" required="true">
<mx:DateField id="dtfData"/>
</mx:FormItem>
</mx:Form>
<mx:ControlBar horizontalAlign="right">
<mx:Button label="Salvar" click="salvar()"/>
</mx:ControlBar>
</mx:TitleWindow>
<mx:Array id="arrCampos">
<mx:StringValidator source="{txiCodigo}" property="text" required="true" requiredFieldError="Campo Obrigatório"/>
<mx:StringValidator source="{txiNome}" property="text" required="true" requiredFieldError="Campo Obrigatório"/>
<mx:StringValidator source="{dtfData}" property="text" required="true" requiredFieldError="Campo Obrigatório"/>
<mx:NumberValidator source="{cbbSexo}" property="selectedIndex" minValue="0" lowerThanMinError="Campo Obrigatório" requiredFieldError="Campo Obrigatório"/>
</mx:Array>
<mx:Script>
<![CDATA[
import mx.validators.Validator;
import mx.controls.Alert;
import mx.events.ValidationResultEvent;
public function salvar():void
{
if(!validaForm(arrCampos))
return
//CONTINUAR O PROCESSO DE GRAVAÇÃO
}
public function validaForm(ArrayCampos:Array):Boolean
{
var validatorErrorArray:Array = Validator.validateAll(ArrayCampos);;
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);
}
Alert.show(errorMessageArray.join("\n\n"), "ATENÇÃO: Dados Inválidos", Alert.OK);
}
return false;
}
]]>
</mx:Script>
</mx:Application>
2 comentários:
Boa noite professor :D
na parte de apresentar o alert esta com um pequeno erro, você colocou ("nn") e seria ("\n") :D
vlw pelo post :D
José
Bom dia,
Já arrumei o post, na hora de postar o blog deve ter tirado as barras.
Obrigado.
Att
Luiz Henrique
Postar um comentário