asp.net使用jquery ajax和PageMethod,验证不是wotkinh

时间:2012-10-01 10:48:15

标签: asp.net-ajax

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

谢谢

1 个答案:

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