Validação JavaScript antes de chamar o MB

3 respostas
F

Dae galera…

E possível fazer uma validação no form antes de chamar o metodo no ManageBean do botao submit?
É que quero fazer uma validação no cliente antes de fazer a validação no MB.

Ex.
Tenho um form onde são digitadas as notas dos alunos, ao clicar no botão cadastrar fazer a validação se o que foi digitado é numérico , e só depois disto chamar o metodo
save do MB.

valeu…

3 Respostas

Schwingel

Fala aew FernandoMelo, 100%?

Meu velho, existe uma forma de você fazer isso da seguinte maneira.

No botão responsavel pelo cadastro, você chama uma determinada função que fica responsável por realizar a validação do seu formulário.

<input type="button" name="Submeter" value="Enviar" onclick="javascript:validaForm()">

Repare no evento onclick do componente. A única ação do botão será chamar a função validaForm().

Agora a função validaForm.

<script LANGUAGE='JavaScript'>

function validaForm(){


         if(){ <!-- Faz sua validacao aqui. Se tudo estiver ok, chame a acao de enviar o formulario -->
                document.nomeDoSeuFormulario.submit();
         }else{
                <!-- Caso o formulario nao seja submetido por nao ter passado no teste anterior, apenas exiba uma 
                       mensagem para o usuario informando o ocorrido. -->
         }

}

Esta é a forma de validação no javascript feita ao final do preenchimento do formulário. Existem outras maneiras de você ter este controle campo a campo (Ex: um campo aceitar apenas números).

Abraço.

Schwingel

F

Dae Schwingel, tirando os perrengues...o resto ta beleza rs......

Quanto a este tipo de validação está tranquilo, é o mesmo que é utilizamos nas páginas tradicionais, mas com JSF as coisas são bem diferentes.

Após esta validação, como faço pra chamar o metodo save do manageBean?

Este é o meu botao e tem o metodo do MB no action. Ele ignora o onclick quando uso o action.

&lt;p:commandLink  ajax="true" async="true" action="#{digitarNota.save}" onclick="javascript:validaForm()" update="formTurmas"&gt;

fallow...

Schwingel

E aew FernandoMelo, batendo cabeça ainda? hehehe
Velhão, e se você deixar para definir a action do formulário dentro da função validaForm() antes de submetê-lo?
Mais ou menos assim:

function validaForm(){  
  
  
         if(){ <!-- Faz sua validacao aqui. Se tudo estiver ok, chame a acao de enviar o formulario -->  
                document.nomeDoSeuFormulario.action = "#{digitarNota.save}";
                document.nomeDoSeuFormulario.submit();  
         }else{  
                <!-- Caso o formulario nao seja submetido por nao ter passado no teste anterior, apenas exiba uma   
                       mensagem para o usuario informando o ocorrido. -->  
         }  
  
}

Vai que funfa…

Abraço.

Schwingel

Criado 18 de julho de 2010
Ultima resposta 19 de jul. de 2010
Respostas 3
Participantes 2