Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Validação de campos

Dado esse form:

<form name="alterarSenhaForm" action="" method="POST">
    <input type="password" id="senha_nova" name="senha_nova" />
    <input type="password" id="rep_senha_nova" name="usuario.senha" />
    <button id="alterar-senha"  type="submit" name="_method" value="PUT">Alterar senha</button>
</form>

Preciso verificar se as senhas estão iguais e, se sim, envia-la.

Meu js está assim, o que eu preciso mudar?

var botaoAlterar = document.querySelector("#alterar-senha");
            botaoAlterar.addEventListener("click",function(event){
                event.preventDefault();

                senha = document.alterarSenhaForm.senha_nova.value;
                senhaRepetida = document.alterarSenhaForm.rep_senha_nova.value;

                console.log(senha);
                console.log(senhaRepetida);

                if (senha != senhaRepetida){
                    alert("As senhas não estão iguais!");
                    return false;
                }
                return true;
            })
7 respostas

Oi Thiago, tudo certo?

Seria mais interessante se voce colocasse o listener no submit do form, e nao no click do botao. E o usuario poderia dar enter para envia-lo tambem.

Quando voce quer enviar o form? Antes de sair da funcao. E onde que ela sai se nao entrar no IF? Antes do return true!

Entao acima do return true, bastaria voce colocar um formAlteraSenha.submit().

Abcs!

mais ou menos isso?

$('#alterarSenhaForm').submit (function(event) {
    event.preventDefault();

    senha = document.alterarSenhaForm.senha_nova.value;
    senhaRepetida = document.alterarSenhaForm.rep_senha_nova.value;

    if(senha!=senhaRepetida){
        alert("As senhas não estão iguais!")
    }else{
        this.submit();
    }
});

Oi Thiago,

Estou na rua agora, você testou esse código?

Está dando o que?

Abraços!

Funcionou. Só perguntei p saber se é assim mesmo.

solução!

Oi Thiago,

Opa! Se funciona é vitória! Programação tem dessas, eu tinha pensado nessa solucao:

http://jsbin.com/beladutadu/edit?html,js,output

Voce pode usar apenas JS puro para selecionar o form também, mas é basicamente isso, ok?

Abcs e bons estudos!

bom, estava funcionando, agora está dando o seguinte erro:

Uncaught TypeError: Cannot read property 'addEventListener' of null

Thiago,

Sempre quando dá esse erro é que o JS não achou o elemento no DOM.

Dá uma conferida em como voce está tentando colocar o event listener. Pode ser no JS o problema ou no HTML.

Abcs!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software