Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina



Luiz Henrique de Angeli

luizdeangeli@gmail.com


Exemplo de Validação de Formulários

quarta-feira, 21 de outubro de 2009

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>

2 comentários:

Unknown disse...

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é

Luiz Henrique de Angeli disse...

Bom dia,

Já arrumei o post, na hora de postar o blog deve ter tirado as barras.

Obrigado.

Att
Luiz Henrique


Submarino.com.br
Submarino.com.br