web-dev-qa-db-fra.com

jquery confirmer la validation du mot de passe

J'utilise jQuery pour la validation du formulaire. Le repos est bien sauf le champ de confirmation du mot de passe. Même si le même mot de passe est saisi, le Veuillez saisir le même mot de passe. n'est pas supprimé.

Mon script est:

  <script type="text/javascript">
    $(document).ready(function() {
      $("#form1").validate({
        rules: {
          password: { 
                required: true, minlength: 5
          }, 
          c_password: { 
                required: true, equalTo: "#password", minlength: 5
          }, 
        email: {
          required: true, email: true
          },
        phone: {
          required: true, number: true, minlength: 7
          },
        url: {
          url: true
        },
        description: {
          required: true
        },
        gender: {
             required: true
          }
        },
        messages: {
         description: "Please enter a short description.",
         gender: "Please select your gender."

        }
      });
    });
     -->
  </script>

Et à l'intérieur de la balise de formulaire:

<div class="form-row"><span class="label">Password</span><input type="password" name="password" class="required" id="password" /></div>

<div class="form-row"><span class="label">Confirm Password</span><input type="password" name="c_password" id="c_password" /></div>

Toute suggestion? .__ serait beaucoup reconnaissant pour l'aide.

27
Aryan G

Vos champs ne possèdent pas la propriété ID . Dans jQuery, le sélecteur "#password" signifie "l'objet qui a une propriété id avec la valeur 'password'".

Votre code devrait ressembler à ceci:

<input type="password" name="password" id="password" class="required"/>
18
MatuDuke
<input type="password" id="password" class="nomal required error" value="" name="cpassword">

<input type="password" equalto="#password" class="nomal required error" value="" name="cpassword">
7
Thiwanka
rules: {

n'est pas fermé. Mettez un autre } après:

messages: {
   description: "Please enter a short description.",
   gender: "Please select yor gender."
}

Ceci est aussi bien que la réponse à propos des ID d'élément.

2
Craig

Assurez-vous que le texte saisi dans votre mot de passe comporte l'id 'mot de passe'

2
Dalen

Assurez-vous qu'aucune autre entrée avec la balise id='password' dans cette même page.

1
Pat

J'ai rencontré quelques problèmes lors de l'utilisation des identifiants camelCase pour les entrées de mot de passe. Je l'ai finalement obtenu avec différents 'name' et 'id'.

<input type="password" id="pass" placeholder="New password" name="newPassword">
<input type="password" id="pass2" placeholder="New password" name="repeatNewPassword">
<input type="email" id="inputNewEmail" name="newEmail" placeholder="New email">
<input type="email" id="repeatNewEmail" name="repeatNewEmail" placeholder="New email>

Puis dans le JS:

rules: {
            newPassword: {
                minlength: 6
            },
            repeatNewPassword: {
                minlength: 6,
                equalTo: "#pass"
            },
            newEmail: { email: true},
            repeatNewEmail: {email: true, equalTo: '#inputNewEmail'},
}

Alors, référez-vous au champ de saisie par son nom mais définissez equalTo à l'aide de 'id'. Je ne suis pas sûr du problème de camelCase, car les entrées de courrier électronique ont fonctionné, mais exactement la même nomenclature avec les entrées de mot de passe n'a pas fonctionné, selon mon expérience

1
sgimeno
if($("#newpassword").val()!== ($("#conformpassword").val())){
    $('#newpasswordId').html('<font color="red">Your password does not match</font>');
    $("#newpassword").val('');
    $("#conformpassword").val('');
    $('#newpassword').css("border", "#FF0000 solid 1px")
    $('#conformpassword').css("border", "#FF0000 solid 1px")
    $("#newpassword").focus();

    return false;
}
0
ranjan kumar