2014-05-15 3 views
2

Je suis incapable de valider le ressort pour lequel ont deux champs de mot de passe.Comment valider le formulaire de printemps: forme du formulaire: mot de passe avec JQuery Validation?

Si je change de forme: mot de passe à l'entrée type = "mot de passe" commence à fonctionner, mais les données ne se lie pas avec commandName, et je reçois null dans le contrôleur.

<form:form action="changepas" commandName="mypwd" method="post" id="cngpwdform"> 
<div> 
<table> 
<tr><td>Current Password</td> 
<td><form:password id="curPass" name="curPass" path="pwd" /></td> 
</tr><tr> 
<td>New Password <td> 
<form:password id="newPassword" name="newPassword" path="nwpass" /></td> 
</tr><tr> 
<td><input type="submit" value="Change Password" /></td> 
</tr> 
</form:form> 

Maintenant, nous avons cette validation JQuery

$(document).ready(function() { 
    $("#cngpwdform").validate({ 
     rules : { 
      'curPass' : { 
       required : true 
      }, 
      'newPassword' : { 
       required : true 
      } 
     } 

    }); 

}); 

S'il vous plaît dites-moi une chose.

J'ai quelques autres formes qui se lient parfaitement données avec commandName et sont comme < form> </form> et j'utiliser l'entrée <> balises en eux, fonctionne très bien, mais d'ajouter des champs de mot de passe Je reçois la valeur NULL dans la manette. Puis pour résoudre ceci je dois utiliser le formulaire <: formulaire> et pour le champ je dois utiliser le formulaire <: mot de passe> mais alors jQuery ne le valide pas .... Pouvez-vous sentir ce qui pourrait être faux avec ceci? Ajouter du code HTML généré par Sparky: Mon Dieu !! L'attribut name apparaît deux fois, une fois le nom que j'ai donné et un autre le nom du chemin.

<form id="cngpwdform" action="changepas" method="post"> 
<div> 
<table> 
<tr> 
<td>Current Password</td><td><input id="curPass" name="pwd" name="curPass" type="password" value=""/> 
</td></tr> 

<tr> 
<td>New Password<td><input id="newPass" name="nwpass" name="newPass" type="password" value=""/> 
</td></tr> 

<tr> 
<td><input type="submit" value="Change Password"/> 

</td></tr>  

</form> 
+0

Montrez-nous le _rendered_ HTML vu par le navigateur. Après tout, c'est ce que le JavaScript utilise vraiment. – Sparky

Répondre

3

Pouvez-vous essayer ceci:

<form:password id="curPass" name="curPass" path="curPass" /> 

Si vous affichez la source sur votre rendu HTML et peut-être mettre un point de rupture dans Firebug pour votre fonction jquery validate vous remarquerez que la validation n'est pas tiré .

+0

Donc, pour le champ mot de passe, nous devons avoir le même nom pour path-name et html-name-attribute. Sinon, le nom est généré automatiquement par le nom du chemin d'accès, n'est-ce pas? –

+0

Si vous regardez les docs d'étiquette de forme printanière, le chemin est un attribut obligatoire et id ne l'est pas. Si vous ne spécifiez pas d'identifiant ou de nom, la balise de forme printanière générera automatiquement l'identifiant et le nom. Cela est vrai pour tous les champs de formulaire de printemps et pas seulement pour le champ de mot de passe. –

Questions connexes