Arautus para fazer a validação que você citou como exemplo ( validar campos not null ) você pode utilizar a propriedade required=true do validator, isso faz com que o validator execute uma regra para saber se o “source[property]” está null. Para configurar a mensagem de erro basta utilizar também a propriedade requiredFieldError do validator. Não sei se é somente esta sua duvida, caso tenha mais alguma outra continue postando.
Bruno Cebim eu não recomendo a utilização deste componente pois ele é extremamente grande para um textinput (O binário tem 368KB). Vale mais a pena você utilizar o textinput do flex e agregar somente as funcionalidades que voce realmente precisa, lembre que flex é para web e o tamanho final da sua aplicação é uma consideração importante.
Bruno_Cebim
Realmente é bem grandinha…
Utilizei em uma app pequena e não tive problema…
vlws a dica Thiago
L
Lucas_Emanuel
Thiago Felix:
Arautus para fazer a validação que você citou como exemplo ( validar campos not null ) você pode utilizar a propriedade required=true do validator, isso faz com que o validator execute uma regra para saber se o “source[property]” está null. Para configurar a mensagem de erro basta utilizar também a propriedade requiredFieldError do validator. Não sei se é somente esta sua duvida, caso tenha mais alguma outra continue postando.
Bruno Cebim eu não recomendo a utilização deste componente pois ele é extremamente grande para um textinput (O binário tem 368KB). Vale mais a pena você utilizar o textinput do flex e agregar somente as funcionalidades que voce realmente precisa, lembre que flex é para web e o tamanho final da sua aplicação é uma consideração importante.
Oi Taigo, obrigado pela resposta.
Na verdade as validações no Flex estão tudo prontas. Utilizei varias propriedades para validação. E utilizei tambem mensagem de erro para cada erro de validação.
O problema é: eu tenho botão gravar, que chama úm método Java para inserção desses dados no Banco. Quando clico para gravar, não importa se está validado ou nao pelo flex. Ele manda no banco de qualquer jeito.
Essa validação deve ser feita dentro desse método Java?
Obrigado pela atenção.
Abraços
andre.gil
Fala Arautus, beleza?
Pelo que entendi, você não está conseguindo saber se deu tudo certo antes de chamar o método no Java, né? Tenta algo assim:
Você pode passar o nome dos validators para o método validateAll ou pode criar um código para fazer um “for each” em todos os validators que você criou e montar isso sozinho.
L
Lucas_Emanuel
andre.gil:
Fala Arautus, beleza?
Pelo que entendi, você não está conseguindo saber se deu tudo certo antes de chamar o método no Java, né? Tenta algo assim:
Você pode passar o nome dos validators para o método validateAll ou pode criar um código para fazer um “for each” em todos os validators que você criou e montar isso sozinho.
Era isso que eu precisava. Nao conhecia essa função validateAll. Ele passa um vetor contendo IDs dos Validator ne?. Aí é bom que nao preciso mexer no método Java.
Vou fazer a implementação e jaja vejo no que dá;
Grato
L
Lucas_Emanuel
andre.gil:
Fala Arautus, beleza?
Pelo que entendi, você não está conseguindo saber se deu tudo certo antes de chamar o método no Java, né? Tenta algo assim:
Você pode passar o nome dos validators para o método validateAll ou pode criar um código para fazer um “for each” em todos os validators que você criou e montar isso sozinho.
Cara ele está dando uma mensagem de alerta na frase de declaracao da variavel booleano. Mesmo eu dando um valor false para ele:
var valida:Boolean = false
ele entra direto no laço como se fosse true.
O que pode ser?
andre.gil
Estranho… Você deve ter esquecido de algo (imports, alterar variáveis, etc…)
Vou passar um exemplo completo. É só criar um projeto novo e colocar no Index.mxml para testar:
<?xmlversion="1.0"encoding="utf-8"?><mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"><mx:Script><![CDATA[importmx.controls.Alert;importmx.validators.Validator;privatefunctionsalvar():void{varvalid:Boolean=(Validator.validateAll([valName,valEmail]).length==0);if(valid){//AquivocêchamaseumétodoparagravarnobancoAlert.show("Os campos estão válidos, gravou no banco!!");}else{Alert.show("Você não preencheu todos os campos corretamente. Tente novamente! ;)");}}]]></mx:Script><mx:StringValidatorid="valName"source="{tiName}"required="true"property="text"/><mx:EmailValidatorid="valEmail"source="{tiEmail}"required="true"property="text"/><mx:Panelheight="170"width="300"horizontalAlign="center"horizontalCenter="0"verticalCenter="0"><mx:Form><mx:FormItemlabel="Nome:"><mx:TextInputid="tiName"/></mx:FormItem><mx:FormItemlabel="E-mail:"><mx:TextInputid="tiEmail"/></mx:FormItem></mx:Form><mx:Buttonlabel="Salvar"click="salvar()"/></mx:Panel></mx:Application>
Espero ter ajudado!
L
Lucas_Emanuel
Pessoal, me xinguem.
Eu estava chamando diretamente o método Java no evento Click, e nao estava alterado para o método criado em AS3, por isso nao estava dando.
Cada coisa que agente faz…
Obrigado pela ajuda.
Caso Resolvido
UpTheIrons
Então pessoal,
Eu estou iniciando em Flex, mas gostei muito do componente MasterInputText, e n acho
ele grande, mesmo pq dependendo do projeto, muita coisa se repetiria, e além do que,
vc pode tirar algumas coisas que n te interessa.
Eu recomendo, e pra quem teve probs de validar o form antes de enviar os dados, usando
MasterInputText, o prob é facinho de resolver.