Olá galera … gostaria que alguém tirasse a minha dúvida com esse JS que criei para fazer uma validação. Não sou muito bom com JS, mas pela minha lógica está tudo parcialmente correto, vou colocar aqui os trechos de códigos.
<div>
<h:outputLabel id="confirmarLabel" for="confimar" value="Confirmar senha:" /><br/>
<h:inputSecret id="confirmar" value="#{user.confirm}" onblur="validaChangePass();"/><br/><br/>
</div>
[code]function validaChangePass(){
var senha = document.getElementById(‘novaSenha’);
var confirmar = document.getElementById(‘confirmar’);
if (senha.value == '' || confirmar.value == '') {
alert('Por favor, preencha todos os campos!');
return false;
} else if (senha.value != confirmar.value) {
alert('Ops! A senha não confere.');
confirmar.focus();
return false;
} else if (senha.value == confirmar.value){
return true;
}
}[/code]
Se alguém tiver uma dica … please … se não tiver mesmo assim agradeço por ler o post.
Não acontece nada, supostamente deveria aparecer o Alert, mas não acontece nada. Já testei com o SOUT para ver se os dados estavam sendo recebidos e está tudo ok.
Se vc nao tiver entrado no input de confirmar num vai acontecer nada mesmo nao…
Pq o método só é ativado quando vc sai desse input…
Vc tem que colocar a chamada a sua validacao… no submit do form…
Acredito que não, pois já está tudo no bean. Já fiz outros JS’s desses e só tive problema com esse, não sei se é por causa do onblur, mas a intenção é exatamente essa, quando sair do foco o campo confirmar o a function de validação será executada.
Mas se vc nem chegou a clicar no input… não vai dar o onblur
[quote=chapolimCPT]Olá galera … gostaria que alguém tirasse a minha dúvida com esse JS que criei para fazer uma validação. Não sou muito bom com JS, mas pela minha lógica está tudo parcialmente correto, vou colocar aqui os trechos de códigos.
<div>
<h:outputLabel id="confirmarLabel" for="confimar" value="Confirmar senha:" /><br/>
<h:inputSecret id="confirmar" value="#{user.confirm}" onblur="validaChangePass();"/><br/><br/>
</div>
[code]function validaChangePass(){
var senha = document.getElementById(‘novaSenha’);
var confirmar = document.getElementById(‘confirmar’);
if (senha.value == '' || confirmar.value == '') {
alert('Por favor, preencha todos os campos!');
return false;
} else if (senha.value != confirmar.value) {
alert('Ops! A senha não confere.');
confirmar.focus();
return false;
} else if (senha.value == confirmar.value){
return true;
}
}[/code]
Se alguém tiver uma dica … please … se não tiver mesmo assim agradeço por ler o post.
[/quote]
Uma coisa, o JSF muda o id dos componentes, então, sugiro que, ao invés de você procurar pelo id do componente você passar o componente em si para a função, algo do tipo
function valida(input) {
if (input == null || imput.value == '') {
alert("Campo em branco!");
input.focus();
}
}
....
<h:inputSecret id="tralala" onblur="valida(this)" />
Pois é thiago … estou com esse problema mesmo. Só que não estou trabalhando com apenas um campo, preciso pegar a senha e comparar com a confirmação. Mas notei que o getElementById não está funcionando. Agora nem sei o que fazer!