好吧,我正在使用带有PageMethod的jquery ajax来提交表单,但是我的表单有一个asp.net验证器,ajax和pageMethod的返回值很好但是,验证器不再工作了,这里是我的代码
<script type="text/javascript">
$(document).ready(function () {
// Add the page method call as an onclick handler for the div.
$("#Label1").click(function () {
$.ajax({
type: "POST",
url: "Default.aspx/GetDate",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// Replace the div's content with the page method's return.
$("#Label2").text(msg.d.b);
if (!msg.d.b) {
$("#Label1").hide();
}
}
});
});
});
</script>
后面的代码是这样的
[WebMethod]
public static object GetDate()
{
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=ad;Initial Catalog=Test;Integrated Security=True";
string query="insert into test(name,family) values('mehdi','jabbari')";
con.Open();
SqlCommand cmd = new SqlCommand(query,con);
cmd.ExecuteNonQuery();
con.Close();
return new{
b=false
};
}
谢谢
答案 0 :(得分:0)
当您尝试以常规方式提交时,会调用asp.net中的客户端验证。当您执行ajax提交验证时,不会自动调用,您必须在启动ajax调用之前手动执行此操作:
$("#Label1").click(function () {
if(Page_ClientValidate()) {
$.ajax({
type: "POST",
url: "Default.aspx/GetDate",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// Replace the div's content with the page method's return.
$("#Label2").text(msg.d.b);
if (!msg.d.b) {
$("#Label1").hide();
}
}
});
}
});
Page_ClientValidate(我发现链接在我看来似乎很有用)是ASP.NET的一个功能,它将验证页面。您可以将验证组作为参数传递:Page_ClientValidate('validation_group_name')
,以仅验证具有指定验证组集的一组控件。