2012-01-20 83 views
2

我想知道是否有人使用JQuery驗證密碼插件(http://bassistance.de/jquery-plugins/jquery-plugin-password-validation/)驗證密碼,但不需要它們。如何使用Jquery Validate驗證密碼但不需要它?

就我而言,我正在編輯一個編輯用戶表單。沒有密碼,用戶就無法存在。所以當一個管理員正在編輯一個用戶時,我知道一個密碼已經被驗證並分配給了用戶。

我希望管理員能夠提交表單並將密碼字段留空。這意味着密碼沒有改變。但是,如果管理員想要更改密碼,我想使用jquery驗證密碼(上面鏈接)來驗證密碼。

在我的HTML <head>,我有:

<script src="/Scripts/Common/jquery.js" type="text/javascript"></script> 
<script src="/Scripts/Common/jquery.validate.min.js" type="text/javascript"></script> 
<script src="/Scripts/Common/jquery-validate.password/jquery.validate.password.js" type="text/javascript"></script> 
<link href="/Scripts/Common/jquery-validate.password/jquery.validate.password.css" rel="stylesheet" type="text/css" /> 
<script> 
    $(document).ready(function() { 
     $("#edit").validate(); 
     $("#password").valid(); 
    }); 
</script> 

,並在form字段(剃刀和MVC語法):

@using (Html.BeginForm("Edit", "User", FormMethod.Post, new { id = "edit" })) { 
    @Html.ValidationSummary() 
    @Html.HiddenFor(model => model.UserAccount.UserAccountId) 

    <!-- other user fields removed for brevity --> 

    <table> 
     <tr> 
      <th>Password</th> 
      <td> 
       @Html.PasswordFor(x => x.Password, new { id="password", @class="password"}) 
       @Html.ValidationMessageFor(x => x.Password) 
      </td> 
      <td> 
       <div class="password-meter"> 
        <div class="password-meter-message"> </div> 
        <div class="password-meter-bg"> 
         <div class="password-meter-bar"></div> 
        </div> 
       </div> 
      </td> 
     </tr> 
    </table> 

    <p> 
     <button type="submit">Save</button> @Html.ActionLink("Nevermind", "Index") 
    </p> 
} 

這個偉大的工程。雖然它需要輸入密碼。我可以修改它不需要密碼,只驗證它嗎?

+0

只是想在這裏'/腳本/通用/ jquery.js' 「必需的」 使用類你加載縮小的jQuery或標準?通常應該有'jquery.min.js'(只是一個旁註釋) – Jakub

+0

是的......我相信它被縮小了。我只是簡單地輸入了這篇文章,因爲該鏈接位於主頁面,我從視圖中複製。 :-) – quakkels

回答

0

試試這個

$(document).ready(function() { 
     $("#edit").validate(
      rules: { 
       password: { required: false } 
      }, 
     ); 
     $("#password").valid(); 
    }); 
+0

感謝您的建議。它不幸的工作。我認爲這是密碼插件的一部分,並且密碼不夠長。 (順便說一句:你的代碼示例周圍的規則缺少大括號) – quakkels

1

只使用

$("#edit_form").validate({ 
    rules: { 
     re_password: { 
      equalTo: "#password" 
     } 
    }, 
    messages: { 
     re_password: { 
      equalTo: "Password does not match" 
     } 
    } 
}); 

無需輸入字段

<input id="password" type="password" name="password" class="TextBox"> 
<input id="re_password" type="password" name="re_password" class="TextBox">