Pois é Beck,  eu tb tinha pensado em algo do tipo.
  Mas o problema dessa abordagem é que o evento "invalid" é disparado 
sempre que o componente source dele perde o foco. Isso faz a usabilidade 
ficar meio prejudicada pq pipoca um Alert muito fácil na tela... e o 
usuário não consegue sair do componente onde ele está nem por reza 
braba. Eu acho q fica menos "intrusivo", por assim dizer, se as 
validações ocorressem só quando o usuário, explicitamente, requisitar um 
erro.  (tipo mandar gravar sem preencher um capo obrigatório).
  Uma coisa esquisita tb, é que parecem estar sendo gerados 3 eventos 
pra validação da data, usando essa tecnica de colocar o alert dentro do 
invalid, puro e simplesmente.

  Se desse pra desabilitar o alert durante o curso normal da tela mas 
deixar ele aparecer quando o botão do Enviar fosse pressionado, aí sim, 
funcionaria sem os IFs e mesmo assim o balão vermelho apareceria 
normalmente no form...
  fiz aqui um teste (POG) enquanto estava escrevendo esse email e 
funcionou direitinho...mas ficou um resultado feio e ainda usa um IF pra 
cada validator.



<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    width="100%" height="100%"
    xmlns:mx="http://www.adobe.com/2006/mxml";>
  
    <mx:Form>
        <mx:FormItem label="Nome" required="true">
            <mx:TextInput id="edtNome" width="200"/>
        </mx:FormItem>
        <mx:FormItem label="Data Nascimento" required="true">
            <mx:DateField id="dtNascimento" width="200" editable="true"/>
        </mx:FormItem>
    </mx:Form>
    <mx:Button label="Enviar" click="doEnviar()" />
 
    <mx:Array id="valArray">
        <mx:StringValidator id="valNome" source="{edtNome}"
            invalid="if (podeMostrar) Alert.show('Campo NOME não 
preenche os requisitos')"
            required="true" property="text"/>
        <mx:StringValidator id="valDt" source="{dtNascimento}"
            invalid="if (podeMostrar) Alert.show('Campo DATA NASCIMENTO 
não preenche os requisitos')"
            required="true" property="text"/>
    </mx:Array>
  
    <mx:Script>
        <![CDATA[
            import mx.validators.Validator;
            import mx.controls.Alert;
           
            private var podeMostrar:Boolean = false;
          
            private function doEnviar():void {
                podeMostrar = true;
                if (Validator.validateAll(valArray).length > 0 ) {
                    // foi um bom menino, pode seguir.
                }
                podeMostrar = false;
            }
        ]]>
    </mx:Script>
  
</mx:Application>


    agora fiquei na dúvida qual dos dois jeitos é o menos estranho...


  um abraço,

        Luís Eduardo.





Beck Novaes escreveu:

>Well, uma maneira de eliminar os ifs seria trabalhando com os eventos
>dos validadores. Algo do tipo:
>
>       <mx:StringValidator id="valDtIni"
>               invalid="Alert.show('Campo COTAÇÃO/DATA INÍCIO não preenche os
>requisitos'"
>               required="true" source="{dtIniC}"
>               property="text" />
>
>       <mx:StringValidator id="valDtFim"
>               invalid="Alert.show('Campo COTAÇÃO/DATA TÉRMINO não preenche os
>requisitos'"
>               required="true" source="{dtFimC}"
>               property="text" />
>
>[]'s
>Beck Novaes
>
>On 19 mar, 11:26, Luís Eduardo <[EMAIL PROTECTED]> wrote:
>  
>
>>  mindu,  aqui eu estou fazendo assim:
>>
>> declaração do mxml:
>><mx:StringValidator id="valDtIni" required="true" source="{dtIniC}"
>>property="text" />
>><mx:StringValidator id="valDtFim" required="true" source="{dtFimC}"
>>property="text" />
>>
>>na "função do AS", eu faço assim:
>>
>>private function funcaoDoAS():void {
>>if ( valDtIni.validate().type ==  ValidationResultEvent.INVALID ) {
>>Alert.show("Campo COTAÇÃO/DATA INÍCIO não preenche os requisitos
>>necessários.", "Atenção");}
>>
>>else if ( valDtFim.validate().type ==  ValidationResultEvent.INVALID ) {
>>Alert.show("Campo COTAÇÃO/DATA TÉRMINO não preenche os requisitos
>>necessários.", "Atenção");}
>>
>>else {
>>  livre pra fazer o que deve ser feito.  ( parece frase de filme de
>>charles bronson)   :)
>>
>>}
>>}
>>
>>butt,  eu não sei se assim é o melhor jeito.  (Só sei que funciona redondo).
>>
>>  se mesmo assim não funfar, manda um trecho do teu código que aí fica
>>mais claro.
>>
>>  se alguém souber de um jeito mais "limpo", com mais estilo e/ou
>>reusável, seria ótimo ouvir a respeito...  pq num formulario, as vezes é
>>preciso um monte de validações e fica esse monte de if - else
>>aninhado...  será que assim é o melhor jeito mesmo???
>>
>>  abraços,
>>
>>       Luís Eduardo.
>>
>>mindu escreveu:
>>
>>    
>>
>>>Olá Pessoal,
>>>Gostaria de saber como funciona a validação de formulário ?
>>>Criei um exemplo, coloquei alguns campos como 'required', acrescentei
>>>os validadores para String e Email, acrescentei também um botão
>>>chamando um função do AS.
>>>Só que mesmo não preenchendo os campos obrigatórios, a função do botão
>>>executada, os campos ficam em vermelho, mas a função é executada.
>>>      
>>>
>>>Tem como configurar para executar o método somente depois de todos os
>>>campos validado ?
>>>      
>>>
>>>[]'s
>>>mindu
>>>      
>>>
>
>
>>
>
>  
>


--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a