Eu criei o validator dentro do TextInput em um componente que eu fiz... Usando uma propriedade "Obrigatorio (true/false)" ele implementa o validador de acordo com o tipo de campo (alfa, numerico ou alfa-numerico)"...
Abracos Stefan Horochovec Analista de Sistemas Blog: http://www.horochovec.com.br/ Use Java, Flex e Linux 2009/4/14 José Carlos Silveira Fiel <[email protected]> > 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 -~----------~----~----~----~------~----~------~--~---
