Olá, alguem poderia me dizer como fazer o meu commandButton nao fazer submit, pois vejo q todo botão no jsf ele faz um submit no form, mesmo que ele nao seja do tipo submit…eu queria validar meu formulario(java script) antes de enviar mas estou com dificuldade nisso…alguem pode me ajudar?
onde validar é a sua função javascript…
e caso retorne false não sera executado o submit
Tente ai!!!
J
JQuinho
Cara show de bola, valeu mesmo você quebrou um super galho pra me…agora me diz uma coisa, se vários campos obrigatorios estiverem em branco eu gostaria de mostrar só uma mensagem…tipo assim, se tivesse pelo menos um não seria obrigatorio olhar o restante…
att, Quinho
Z
zetamayossi
E ai…
Bom… esse seu problema ai eh mais facil ainda…
Todo componente tem um id… certo?! E a forma mais facil que eu vejo pra fazer isso, eh por exemplo, pegando o id de cada um, e verificando o conteudo…
Para isso vc terá que dar os nomes aos seus componentes, pois caso contrario eles serao gerados automaticamente… o que eh uma chatisse… rss… mas funciona…
Faça assim:
.../* Na Jsp coloque ids ordenados nos seus componentes Vou dar o exemplo de tres campos inputText onde apenas dois sao obrigatorios e um botao submit que antes de tudo executa a funcao javascript de verificacao dos campos chamada no onclick do botao */<h:commandButtonaction=#{seuBean.suaAcao}onClick="javascript: return verificaCamposObrigatorios(this);"/><h:inputTextid="inpo1"value="#{seuBean.valor1}"title="#{bundle['nomeCampo1']}"/><h:inputTextid="inp2"value="#{seuBean.valor2}"title="#{bundle['nomeCampo2']}"/><h:inputTextid="inpo3"value="#{seuBean.valor3}"title="#{bundle['nomeCampo3']}"/>/* Onde inpo1 é input obrigatorio (1) inp2 é input nao obrigatorio (2) inpo3 é input obrigatorio (3) */.../* Bom... sua jsp esta pronta certo?! Agora falta criar a funcao verifica campos obrigatorios em javascript */functionverificaCamposObrigatorios(campo){boo=true;cont=1;while(boo){id=campo.form+":inpo"+cont;cmp="";if(document.getElementById(id))cmp=document.getElementById(id);if(cmp!=""){if(cmp.value==""){alert("Preenchacorretamenteocampo:" + cmp.title ); return false; // Nao deixa o componente dar submit } } else { id = campo.form + ":inp"+cont;if(document.getElementById(id))boo=true;elseboo=false;}cont++;}returntrue;}
Bom… eu nao testei esse código ai nao… mas tente entender e testa-lo…
Provavelmente com alguns acertos ele funcionara… lembrando que eu estou olhando id por id e verificando o conteudo de cada um…
No alert eu estou mostrando o title do componente… que deve ser o nome do campo…
Caso nao funcione ou nao entende… poste aqui q tentarei ajuda-lo…