Asp.net

ASP.NET Web 窗體中的 jQuery 驗證外掛

  • March 6, 2009

我真的很想在我的 ASP.NET Web 窗體應用程序(不是 MVC)中使用 jQuery 驗證外掛。我發現它比到處添加 asp 驗證器並設置控制項來驗證所有這些驗證器更容易。

我只是在設置此類時遇到了一些問題 class=“required email” 我認為這與主表單標籤中的表單標籤有關。

在使用在 asp 控制項中被破壞的名稱呼叫 jquery validate 時,我也遇到了問題

// validate signup form on keyup and submit
$("#signupForm").validate({
   rules: { 
       username: {
           required: true,
           minlength: 2
       }, },
   messages: { 
       username: {
           required: "Please enter a username",
           minlength: "username at least 2 characters"
       }, 
   }.

.......

       <p>
           <label for="username">
               Username</label>
           <input id="username" name="username" />
       </p>

因為這

<asp:TextBox ID="tbUsername"  runat="server"></asp:TextBox>

呈現為

<input name="ctl00$ContentPlaceHolder1$tbUsername" type="text" id="ctl00_ContentPlaceHolder1_tbUsername" />

並破壞名稱。我可以使用 ClientID 獲取,<%=tbUsername.ClientID %>但這不適用於 ClientName

有沒有人使用帶有 asp.net 的 jquery 驗證器外掛取得任何成功?如果是這樣,那麼使用多個表單就像使用單獨的驗證組一樣呢?

您可以檢查規則添加功能,但基本上這是您可以執行的操作:

jQuery(function() {
   // You can specify some validation options here but not rules and messages
   jQuery('form').validate(); 
   // Add a custom class to your name mangled input and add rules like this
   jQuery('.username').rules('add', { 
       required: true, 
       messages: { 
           required: 'Some custom message for the username required field' 
       } 
   });
});

<input name="ctl00$ContentPlaceHolder1$tbUsername" type="text" id="ctl00_ContentPlaceHolder1_tbUsername" class="username" />

這樣就無需擔心 webforms 引擎生成的蹩腳的標識符。

引用自:https://stackoverflow.com/questions/619816