1

好吧,我使用带有 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
    };
}

谢谢你

4

1 回答 1

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')仅验证具有指定验证组集的一组控件。

于 2012-10-02T21:56:38.127 回答