将jquery与嵌套母版页一起使用

时间:2010-05-16 05:11:52

标签: asp.net jquery master-pages

任何人都可以告诉我如何在asp.net嵌套母版页中使用jquery。我有我的主要母版页,我已经添加了链接到jquery libaray以及验证框架。然后我创建了另一个带有一些样式的母版页,并根据该母版页创建了一个aspx页面。

如何将验证框架附加到我页面中的文本框?

我试过了

         $("#aspnetForm").validate({
            rules: {
                <%=txtPostCode.UniqueID %>: {
                    minlength: 2,
                    required: true
                },
                 <%=txtContactEmail.UniqueID %>: {                        
                    required: true,
                    email:true
                }
            }, messages: {
                <%=txtPostCode.UniqueID %>:{ 
                    required: "* Required Field *", 
                    minlength: "* Please enter atleast 2 characters *" 
                }
           }
        });

然而没有任何反应。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

您可以编写将ID传递给jQuery函数的包装器方法,并在子页面上使用RegisterStartupScript或内联JS调用这些方法:

使用Javascript:

function makejQueryOnMangledNamesLessPainful(firstSelector, secondSelector)
{
    $(firstSelector).whatever();
}

的.aspx:

<script>
   makejQueryOnMangledNamesLessPainful('#<%=Thing.ClientID%>',
                                       '<%=OtherThing.GetClientSelector()%>);
</script>

其中GetClientSelector返回一个字符串,它是一个选择器,或者只是一个ID或者可能是一些服务器派生的类。或其他任何事情,真的。

答案 1 :(得分:0)

因为ASP.NET会破坏ID,所以最好的办法就是为服务器控件设置CSS类并以这种方式访问​​它们:

<asp:textbox id="Text1" cssclass="myText" runat="server" />

$('.myText').whatever();

这不是效率最高的JS,因为你是按类而不是ID来选择的,但是它会让你在试图处理WebForms中的ASP.NET错位ID时免于麻烦。