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