Jump to content

[Resolvido] confirmar a palavra passe


hapro
 Share

Recommended Posts

boas,

eu tenho aqui uma problema. è assim eu fiz este codigo, mas está a dar-me erro e não sei a onde.

O que quero fazer é comparar as palavras-passes se der continua se não fica nesta pagina a dizer onde está o erro.

obrigado.

Aqui está o codigo

<html>
<head>
<title>Validar a palavra-passe</title>
<script>
var password = document.getElementById("password")
 , confirm_password = document.getElementById("confirm_password");
function validatePassword(){
 if(password.value != confirm_password.value) {
   confirm_password.setCustomValidity("Senhas diferentes!");
 } else {
   confirm_password.setCustomValidity('');
 }
}
password.onchange = validatePassword;
confirm_password.onkeyup = validatePassword;
</script>
</head>

<body>

VALIDAR SENHA
<br>
<br>
<form class="pure-form"action="registar.php">
   <fieldset>
    <legend>Confirmação da palavra-passe </legend>
    <input type="password" placeholder="Senha" id="password" required>
    <input type="password" placeholder="Confirme Senha" id="confirm_password" required>
    <button type="submit" class="pure-button pure-button-primary">Confirmar</button>
   </fieldset>
</form>

</body>
</html>

Melhores cumprimentos,

HAPRO

Link to comment
Share on other sites

HappyHippyHippo

não aparece nenhum erro, mas não está a fazer o que quero

errado, tem de aparecer.

verifica novamente a consola de desenvolvimento, pois sem essa mensagem ficam sem perceber o que está a acontecer.

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

HappyHippyHippo

como podes ver, o que a mensagem de erro indica é que estas a tentar atribuir algo à propriedade "onchange" de algo que não existe

ao ver o teu código, o único local onde isso está a acontecer (a atribuição) é na seguinte linha:

password.onchange = validatePassword;

o que se pode inferir que o que não existe aqui (tem o valor de nulo) é a variável "password"

a tua primeira resposta poderá ser : "mas a variável não tem o valor de nulo porque estou a obter o elemento mais acima"

var password = document.getElementById("password")

mas o que não deverás saber é que da mesma forma que um programa convencional é executado, o código de uma página web é também ele processado de cima para baixo.

neste caso, estás a executar o javascript antes de todo o HTML que aparece após o elemento "script". isto leva a que o elemento "password" não existe no momento da execução do javascript, o que leva a que o método "getElementById" não retorne nada (nulo).

para resolver o teu problema tens duas opções:

- passar o código javascript para depois da declaração dos elementos do HTML envolvidos na sua execução

- fazer com que o javascript seja executado somente após o carregar da página por completo, por ventura, conter-lo dentro de uma função a ser chamada no evento "onload" do "body".

Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.