O exemplo do nosso amigo José Carlos deve resolver o seu problema. O
trecho de código abaixo apenas elimina a necessidade de tratar um
evento de inicialização da aplicação para adicionar os Validators na
array.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";>

        <mx:Script>
                <![CDATA[
                        import mx.controls.Alert;
                        import mx.validators.Validator;

                        private function 
submitClickHandler(event:MouseEvent):void
                        {
                                var validationResultEvents:Array = 
Validator.validateAll
(validators);

                                if (validationResultEvents.length == 0)
                                {
                                        Alert.show("There are no errors!");
                                }
                                else
                                {
                                        Alert.show("There are errors!");
                                }
                        }

                ]]>
        </mx:Script>

        <mx:Array id="validators">
                <mx:StringValidator minLength="3" source="{userName}"
property="text"/>
                <mx:EmailValidator source="{email}" property="text"/>
        </mx:Array>

        <mx:Form>

                <mx:FormItem label="Name:">
                        <mx:TextInput id="userName"/>
                </mx:FormItem>

                <mx:FormItem label="Email:">
                        <mx:TextInput id="email"/>
                </mx:FormItem>

                <mx:FormItem>
                        <mx:Button label="Submit" 
click="submitClickHandler(event)"/>
                </mx:FormItem>

        </mx:Form>

</mx:Application>

Att,
Beck Novaes

On 14 abr, 13:47, José Carlos Silveira Fiel <[email protected]> wrote:
> Bruno eu uso como o exemplo abaixo, usando validators.
> Se todos os validadores estiverem corretos ele entra no metodo _salvar()
> senão mostra os campos que ainda precisam ser preenchidos.
> Abaixo coloquei algo bem simples, espero que tire uma ideia de como é feito.
> Não sei se é o que precisa, mas foi o que entendi.
>
> // Script AS
>
> [Bindable] private var _validatorArr:Array;
>
> private function _init():void{
> _validatorArr = new Array();
> _validatorArr.push(svNome);
> _validatorArr.push(svCep);
>
> }
>
> private function _validateForm():void{
> var validatorErrorArray:Array = Validator.validateAll(_validatorArr);
>         var isValidForm:Boolean = validatorErrorArray.length == 0;
>         if (isValidForm) {
>             _salvar();
>         } 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!");
>             }
>
> }
>
> <!-- MXML -->
> <mx:StringValidator id="svNome" source="{tiNome}" property="text" />
> <mx:StringValidator id="svCep" source="{tiCep}" property="text"
> minLength="8" tooShortError="Digite um CEP válido!" />
>
> <mx:FormItem label="Nome:" width="100%" required="true">
> <mx:TextInput id="tiNome" width="250" maxChars="200" />
> </mx:FormItem>
> <mx:FormItem label="CEP:" width="100%" required="true">
> <mx:TextInput id="tiCep" width="250" maxChars="8" restrict="0-9" />
> </mx:FormItem>
>
> Abraços,
> José Carlos Silveira Fielhttp://blog.fielweb.com.br/
>
> 2009/4/14 bruno bg <[email protected]>
>
> > existe nos componentes as tags "validator" que pode ser string, number,
> > cpf, email, tel, etc.
> > Até aê tudo bem. na execução aparece os tooltips mostrando que está errado
> > e mostra tb quando eu coloco o campo
> > como required=true. Mostra ESTE CAMPO É OBRIGATÓRIO.
> > Dos campos formatados já aparecem no formato que eu defini.
>
> > Gostaria  de saber se tem como eu chamar os métodos para validar antes de
> > salvar no Banco de Dados.
> > ou eu tenho que verificar campo a campo se está formatado do tipo definido
> > e também
> > verificar campo a campo se aquele campo definido como required=true está
> > null ou "". Antes de chamar o método de Salvar no Mysql.
>
> > bruno bg
>
> > 2009/4/14 Beck Novaes <[email protected]>
>
> >> Você já tentou ver se poderia usar um dos eventos do validator como
> >> "valid" ou "invalid"?
>
> >> Att,
> >> Beck Novaes
>
> >> On 14 abr, 12:11, bruno bg <[email protected]> wrote:
> >> > Pesquisei no google sobre validação e formatação de campos, encontrei
> >> alguns
> >> > componentes prontos:
> >> > com.flexpernambuco.controls
> >> > e
> >> > CEPValidator.as
> >> > CNPJCPFValidator.as
> >> > TELValidator.as
> >> > com seus respectivos TextInputCEP.as, TextInputCNPJCPF.as e
> >> TextInputTEL.as
>
> >> > As bordas aparecem em vermelho e seus tooltips aparecem com as
> >> respectivas
> >> > mensagens.
> >> > Pergunta:
>
> >> > como poderia acionar seus métodos "validator" antes de salvar o
> >> registro.
>
> >> > Pensei em fazer na mão campo a campo, mas isso ao longo do projeto
> >> acredito
> >> > que seja inadequado.
> >> > Acredito que tenha alguma forma de acionar os "validator" de todos os
> >> campos
> >> > que coloco como "required" ou "number", ou etc.
> >> > E eu fazer ser acionado antes de salvar.!!!!
>
> >> > Procurei no arquivos do próprio grupo e não achei nenhum arquivo/projeto
> >> que
> >> > tivesse tal exemplo.
>
> >> > atenciosamente
> >> > bruno bg
--~--~---------~--~----~------------~-------~--~----~
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