2014-05-15 84 views
2

我無法驗證有兩個密碼字段的彈簧。如何驗證Spring窗體:窗體的形式:使用JQuery驗證的密碼?

如果我從形式:密碼更改爲輸入類型=「密碼」它開始工作,但是然後數據不會與commandName綁定,並且我在控制器中收到空。

<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> 

現在有這樣的jQuery驗證

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

    }); 

}); 

請告訴我一兩件事。

我很少有其它形式的完美與命令名結合數據和像<形式> </FORM>和我使用<輸入>在他們的標籤,工作正常,但要加密碼字段我在得到空值控制器。然後解決這個我必須使用<窗體:窗體>和字段我必須使用<窗體:密碼>但然後jQuery不驗證它....你可以感覺這可能是錯誤的嗎?

添加生成的HTML作爲Sparky問: 我的上帝!名稱屬性出現兩次,一旦我給出的名稱和另一個路徑名稱。

<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

向我們展示瀏覽器看到的_rendered_ HTML。畢竟,這就是JavaScript真正使用的。 – Sparky

回答

3

你可以試試這個:

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

如果您在渲染HTML查看源,也許放在螢火一個破發點你的JQuery驗證功能,你會發現,驗證是不是被解僱。

+0

因此,對於密碼字段,我們需要爲路徑名和html-name-attribute具有相同的名稱。否則,name是由path-name的名稱自動生成的,對嗎? –

+0

如果您查看spring表單標記文檔,則路徑是強制性屬性,而id不是。如果你沒有指定id或name,spring form標籤會自動生成id和name。對於所有彈簧表單字段都是如此,而不僅僅是密碼字段。 –