2012-04-24 68 views
0

我有一個aspx頁面內容,這會繼承母版頁。什麼來代替動態ID的用於形式jQuery驗證使用?

在母版頁我的主要內容佔位談到下一個<form>

<form runat="server"> 
<div class="page"> 

    <div class="main"> 
     <asp:ContentPlaceHolder ID="MainContent" runat="server"/> 
    </div> 
    <div class="clear"> 
    </div> 
</div> 
<div class="footer"> 

</div> 
</form> 

下面是我的內容頁面代碼:

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
<table border="0" cellpadding="3" cellspacing="3"> 
    <tr> 
     <td colspan="2" class="header" style="color: Black;"> 
      LOGIN USER 
     </td> 
    </tr> 
    <tr> 
     <td align="right"> 
      <asp:Label ID="lblUserName" runat="server" Text="UserName: "></asp:Label> 
     </td> 
     <td align="left"> 
      <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox> 
     </td> 
    </tr> 
    <tr> 
     <td align="right"> 
      <asp:Label ID="lblPassword" runat="server" Text="Password: "></asp:Label> 
     </td> 
     <td align="left"> 
      <asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox> 
     </td> 
    </tr> 
    <tr> 
     <td align="center" colspan="2"> 
      <asp:Button ID="btnSubmit" runat="server" Text="Submit" />&nbsp; 
      <asp:Button ID="btnReset" runat="server" Text="Reset" /> 
     </td> 
    </tr> 
</table> 
<div align="center" class="alertmsg"> 
</div> 

雖然我打算使用jQuery驗證插件:

<script type="text/javascript" language="javascript"> 
    $(document).ready(function() { 
      $('#ctl01').validate({ 
      rules: { 
        <%=txtUserName.UniqueID %>: { 
         minlength: 2, 
         required: true 
        }, 
        <%=txtPassword.UniqueID %>: {       
         required: true, 
         email:true 
        } 
       }, 
      messages: { 
        <%=txtUserName.UniqueID %>:{ 
         required: "* Required Field *", 
         minlength: "* Please enter atleast 2 characters *" 
        }, 
        <%=txtPassword.UniqueID %>:{ 
         required: "* Required Field *", 
         email: "* Please enter valid email address *" 
        }  
       } 

     }); 
}); 

</script> 

txtUserName動態ID可以通過<%=txtUserName.UniqueID %>被曝光,但爲什麼我需要給表單的id來$('#ctl01').validate? 我可以使用任何其他標識代替#ctl01

回答

0

您可以使用:注意.validate()要求它從因爲你做驗證,以檢查正確的價值觀,他們被髮送到服務器,即前$('<%=Form.UniqueID %>').validate({$('<%=Form.UniqueID %>').validate({

<script type="text/javascript" language="javascript"> 
    $(document).ready(function() { 
      $('#<%=Form.UniqueID %>').validate({ 
      rules: { 
        <%=txtUserName.UniqueID %>: { 
         minlength: 2, 
         required: true 
        }, 
        <%=txtPassword.UniqueID %>: {       
         required: true, 
         email:true 
        } 
       }, 
      messages: { 
        <%=txtUserName.UniqueID %>:{ 
         required: "* Required Field *", 
         minlength: "* Please enter atleast 2 characters *" 
        }, 
        <%=txtPassword.UniqueID %>:{ 
         required: "* Required Field *", 
         email: "* Please enter valid email address *" 
        }  
       } 

     }); 
}); 

</script> 
+0

$( '<%= Form.UniqueID%>')沒有工作,什麼dieerenceü要求什麼呢? – user584018 2012-04-24 07:08:59

+0

抱歉,我以前'<%= Form.UniqueID%>'無緣''#。更新了答案,請重新檢查。 – AYK 2012-04-24 08:07:19

+0

我把#放在前面,但不工作? – user584018 2012-04-24 10:53:14

0

之間的不同,當用戶提交形式,只有形式可以提交,只有通過他們,你可以阻止提交開始錯誤的價值觀..

更清晰:

ÿ您可以參考http://docs.jquery.com/Plugins/Validation/validate以獲得清晰的描述。

和如果Control.UniqueID不運作的,你可以使用Control.ClientID ...

+0

兩者都不起作用... – user584018 2012-04-24 07:24:30

+0

在設計時使用表格的「ID」。如果它來自'from1'然後寫'form1.ClientId'。如果您的表單標籤位於母版頁中,並且Jquery在子頁面中,那麼只需使用「'('#aspnetForm')。validate({...'」)。 – RohitWagh 2012-04-24 07:37:10

相關問題