Valeu pela dica Beck,
Att.,
José Carlos Silveira Fiel
http://blog.fielweb.com.br/

2009/4/14 Beck Novaes <[email protected]>

>
> 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