1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

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

Discussão em 'Web Development' iniciada por toblesu, 11 de Janeiro de 2008. (Respostas: 7; Visualizações: 1536)

  1. toblesu

    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: 11 de Janeiro de 2008
  2. Armadillo

    Armadillo Folding Member

    posta tambem o html por favor
     
  3. toblesu

    toblesu Power Member

    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: 11 de Janeiro de 2008
  4. Armadillo

    Armadillo Folding Member

    deves-te ter enganado no html. este so apresenta o login.
    Presumo que a pagina querias mandar seria a do registo.
     
  5. greed

    greed Power Member

    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: 11 de Janeiro de 2008
  6. toblesu

    toblesu Power Member

    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!
     
  7. toblesu

    toblesu Power Member

    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: 11 de Janeiro de 2008
  8. toblesu

    toblesu Power Member

    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
     

Partilhar esta Página