2012-04-24 70 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

相关问题