Validação de Password e Confirmação [JS]

toblesu

Power Member
Oias,

tenho um problema, pretendo verificar através de javascript se a password e a confirmação coincidem... no entanto ele não dá qq sinal quanto a isso...

o código javascript que utilizei é o seguinte:

Código:
function validar(elem)
{ 
    if (elem.passwd.value ==""){
        alert("O campo " + elem.passwd.name + " deve ser preenchido!");
        focus_erro(elem.passwd)
        return false;
        }
    if (elem.conf.value ==""){
        alert("O campo " + elem.conf.name + " deve ser preenchido!");
        focus_erro(elem.conf)
        return false;
    }
    if ((elem.passwd.value !="")&&(elem.conf.value !="")){
        validarSenha(elem.passwd.value,elem.conf.value);
        }
    
else{
        var x=window.confirm("Confirme para continuar.");
        if (!x){
            return false;
        }
    }        
}

function validarSenha(senha1,senha2)
{
    if (senha1 != senha2)
    {
        alert ("As passwords têm que ser iguais. Por favor repita a inserção.");
        focus_erro(senha2)
        return false;    
    }
    return true;
}


já tentei várias "formas e feitios" de código.. mas está muito complicado existir alguma resposta positiva.... percebo muito pouco de javascript.. fiz várias pesquisas e adaptei validações de colegas meus...


se me pudessem dar uma ajuda!

Obrigado
 
Última edição pelo moderador:
o html criado:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formul&aacute;rio: Registo de Cliente</title>
<link href="trata_forms/estilos_site.css" rel="stylesheet" type="text/css" />
 <script language="javascript" src="scripts/validar_ped.js"></script>
<style type="text/css">
<!--
(...)
-->
</style>
<script type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


//-->
</script>
<link href="estilos.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="500" bgcolor="#CCCCCC">
  <tr>
    <td class="style6">
     
     <form id="ped_user" name="ped_user" method="post" action="trata_forms/trata_pedido.php" onSubmit="return validar(this)" >
       <table width="100%" height="89" bgcolor="#CCCCCC" class="linha_topo" >
          <tr>
            <td width="3%" height="59" rowspan="2" align="left">&nbsp;</td>
            <td width="20%" height="29" align="left" class="style5">Username<em>*</em></td>
            <td width="71%" align="left" valign="middle"><input name="username" type="text" class="fundo_button" id="username" size="13" maxlength="9" />
                <span class="style5">&nbsp;&nbsp;&nbsp;</span></td>
            <td width="6%" rowspan="2" align="left">&nbsp;</td>
          </tr>
          <tr>
            <td height="52" align="left" class="style5">Password*&nbsp;</td>
            <td width="71%" align="left"><input name="passwd" type="password" class="fundo_button" id="passwd" size="13" maxlength="9" />
              <span class="style5">Confirma&ccedil;&atilde;o*<em>
              <input name="conf" type="password" class="fundo_button" id="conf" size="13" maxlength="9" />
              </em></span></td>
          </tr>
        </table>
        <table width="100%" height="40" bgcolor="#CCCCCC" class="linha_topo" >
          <tr>
            <td width="73%" height="35" align="right" valign="middle"><input name="Submit" type="submit" class="butoes" id="Submit" value="Enviar">                              </td>
            <td width="3%" height="35" align="center" valign="middle">&nbsp;</td>
            <td width="24%" height="35" align="left" valign="middle"><input name="Reset" type="reset" class="butoes" id="submit" value="Limpar" /></td>
          </tr>
      </table>
    </form>    </td>
  </tr>
</table>
</body>
</html>
 
Última edição pelo moderador:
Isto é mau:

Código:
if (elem.passwd.value ==""){
        alert("O campo " + elem.passwd.name + " deve ser preenchido!");
        focus_erro(elem.passwd)
        return false;
        }
    if (elem.conf.value ==""){
        alert("O campo " + elem.conf.name + " deve ser preenchido!");
        focus_erro(elem.conf)
        return false;
    }

Pq imagina que o utilizador nao preenche os 2 campos...ai ai ipm!
Eu faria uma comparacao das duas primeiro:
Código:
if (elem.passwd.value =="" && elem.conf.value ==""){
        alert("Os campo " + elem.passwd.name + e + elem.conf.name + " deve ser preenchido!");
/*focus_erro(elem.passwd) nao sei o k faz.*/
        return false;
        }
     if (elem.passwd.value ==""){
        alert("O campo " + elem.passwd.name + " deve ser preenchido!");
        focus_erro(elem.passwd)
        return false;
        }
    if (elem.conf.value ==""){
        alert("O campo " + elem.conf.name + " deve ser preenchido!");
        focus_erro(elem.conf)
        return false;
    }
 
Última edição pelo moderador:
Armadilho: de facto o primeiro código que tinha colocado era do login.. mas é este que queria colocar... editei o post! este de registo, contém muitos outros campos, e por ser demasiado extenso, apenas coloquei a parte que interessava....


greed: o "focus_erro(elem.erro) é uma função para que a caixa que tem erro fique com uma cor diferente - meramente uma questão estética.... (essa função não consta do código postado!!).
Não percebi muito bem a tua sugestão.. comparava as duas primeiro se estavam em branco, em simultâneo... mas depois mantens o código para cada uma em separado!
 
já avancei um cadito no meu problema.. agora entra dentro da funcão validarSenha... vê que as passwords nao são iguais... mostra a mensagem: As passwords têm que ser iguais. Por favor repita a inserção. mas depois descamba.....

alterações ao código:

function validar(elem)
{
if ((elem.passwd.value !="")&&(elem.conf.value !=""))
{
if(validarSenha(elem.passwd.value,elem.conf.value)== false)
{
focus_erro(
elem.conf)
return false;
}
}

}

function validarSenha(senha1,senha2)
{
if (senha1 != senha2)
{
alert ("As passwords têm que ser iguais. Por favor repita a inserção.");
return false
}
else
{
return true
}
}




preciso de uma ajudita!!!!

obrigado
 
Última edição:
problem solved!!!


a solução atrás funciona!!! apenas haviam uns erros de ortografia.... argumento mal passado.. que não tinha dado conta.... e era isso que descambava td!

obrigado na msm
 
Back
Topo