求教jquery.validate在使用了masterpage的页面下失效,已经使用了<%=form1.ClientID%>,查看源代码id也都是对的,在单纯的页面下测试没问题,有没大神可以告诉小弟,谢谢<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<script type="text/javascript" language="javascript">
$().ready(function () {
$("#<%=form1.ClientID %>").validate({
rules: {
username:
{
required: true,
remote: {
type: "POST",
url: "WebService.asmx/Test",
dataType: "xml",
data: { uid: function () { return $("#<%=username.ClientID%>").val(); } },
dataFilter: function (dataXML) {
var result = jQuery(dataXML).find("boolean").text();
if (result == "false") {
return false;
}
else {
return true;
}
} } },
email: {
required: true,
email: true
},
password: {
required: true,
minlength: 5
},
confirm_password: {
required: true,
minlength: 5,
equalTo: "#<%=password.ClientID %>"
}
},
messages: {
username: "请输入姓名",
email: {
required: "请输入Email地址",
email: "请输入正确的email地址"
},
password: {
required: "请输入密码",
minlength: jQuery.format("密码不能小于{0}个字符")
},
confirm_password: {
required: "请输入确认密码",
minlength: "确认密码不能小于5个字符",
equalTo: "两次输入密码不一致不一致"
}
}
});
});
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<form id="form1" runat="server">
<div>
username :<input type="text" id="username" name="username" runat="server" />
<br />
email: <input type="text" id="email" name="email" runat="server" />
<br />
password: <input type="password" id="password" name="password" runat="server" />
<br />
confirm: <input type="password" id="confirm_password" name="confirm_password" runat="server" />
<br />
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</div>
</form>
</asp:Content>
<script type="text/javascript" language="javascript">
$().ready(function () {
$("#<%=form1.ClientID %>").validate({
rules: {
username:
{
required: true,
remote: {
type: "POST",
url: "WebService.asmx/Test",
dataType: "xml",
data: { uid: function () { return $("#<%=username.ClientID%>").val(); } },
dataFilter: function (dataXML) {
var result = jQuery(dataXML).find("boolean").text();
if (result == "false") {
return false;
}
else {
return true;
}
} } },
email: {
required: true,
email: true
},
password: {
required: true,
minlength: 5
},
confirm_password: {
required: true,
minlength: 5,
equalTo: "#<%=password.ClientID %>"
}
},
messages: {
username: "请输入姓名",
email: {
required: "请输入Email地址",
email: "请输入正确的email地址"
},
password: {
required: "请输入密码",
minlength: jQuery.format("密码不能小于{0}个字符")
},
confirm_password: {
required: "请输入确认密码",
minlength: "确认密码不能小于5个字符",
equalTo: "两次输入密码不一致不一致"
}
}
});
});
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<form id="form1" runat="server">
<div>
username :<input type="text" id="username" name="username" runat="server" />
<br />
email: <input type="text" id="email" name="email" runat="server" />
<br />
password: <input type="password" id="password" name="password" runat="server" />
<br />
confirm: <input type="password" id="confirm_password" name="confirm_password" runat="server" />
<br />
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</div>
</form>
</asp:Content>
没有,我把那个form删掉了,而且我也已经试过把form放在masterpage里,也没用
你对照下aspx生成的浏览器页面源代码与你的测试页面之间有什么差别
url: "WebService.asmx/Test",路径是否正确,
写
url: "<%=Page.ResolveUrl("~")%>WebService.asmx/Test",比较好