Hmmm...a pedida me parece boa, mas apesar do código ficar um pouco 
(bem pouco) mais legível, o trabalho que vou ter pra fazer funcionar com 
o validateAll está parecendo ser maior do que o outro jeito não?  e com 
ifs aninhados ainda... (pra ver quem falhou e qual msg sai no alert.)

  fiz esse pequeno teste para garantir que não estou entendendo nada 
errado...


<?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}" 
required="true" property="text"/>
        <mx:StringValidator id="valDt" source="{dtNascimento}" 
required="true" property="text"/>
    </mx:Array>
   
    <mx:Script>
        <![CDATA[
            import mx.validators.Validator;
            import mx.controls.Alert;
           
            private function doEnviar():void {
                if (Validator.validateAll(valArray).length > 0 ) {
                    //if ???
                }
            }
        ]]>
    </mx:Script>
   
</mx:Application>



    bem ali onde o IF comentado está, creio que deva ter um FOR (ou 
WHILE) para iterar o vetor de objetos de retorno, uma vez que se não 
falhar, não virá uma entrada no array, então perco a indexação..
dentro do FOR eu teria que ter os danados dos IFs aninhados, *do mesmo 
jeito que estavam antes*, para poder jogar na tela uma msg dizendo qual 
foi o campo que falhou..
  é isso mesmo????  (coçando a cabeça aqui)

  uma alternativa que imaginei aqui agora é que poderia fazer uma 
extensão do validator e colocar nele uma variável texto que seria jogada 
junto a uma extensão do evento retornado quando falhar...  de forma que 
seria só o caso de pegar o primeiro item do array de retorno e jogar o 
texto no Alert... mas me parece uma maneira não muito saudável de se 
fazer esse Neston.  :)   (hehehe  adorei aquela).

  que que eu não entendi????



  abraços,

      Luís Eduardo.





Fabio Terracini escreveu:

>Que tal um Validator.validateAll(....) ?
>
>[]s
>Fabio
>
>
>On 3/19/07, 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