用asp.net webmethod问题进行jquery远程验证

时间:2010-11-22 17:06:42

标签: asp.net jquery jquery-validate

我正在使用asp.net codebehind和webservice进行jQuery远程验证,现在远程函数正在使服务器正常运行,我正在返回真或假JSON响应,但发生的情况如下:

我第一次使用故意空字段点击“登录”按钮时,我在客户端和服务器端都收到错误消息,很好但是如果我填写字段并尝试按下登录按钮,则远程功能正常工作但不是即使字段已填满,客户端也不会出现错误消息。

我在网上尝试了很多没有运气的搜索,如果有人可以提供帮助,我会非常感激。

这是我的代码:

  $("#Login").click(function () {
                 $("#form1").validate(
                 // This prevents validation from running on every
                 //  form submission by default.
                 //  onsubmit: false

{    规则:{     电邮:{         required:true,

     remote: {
        type: "POST",
        url: "WebForm1.aspx/IsValid",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: "{'username':'" + function () {
            return $("#UserName").val();
        } + "'}", success: function (msg) {
            result = (msg == '1') ? true : false;
         //   alert(msg.d); 
        }
    }


}
}
}
              );

                 var isValid = $("#form1").valid();



               alert(isValid);
             });

服务器端代码

     public static Boolean IsValid()
    {

        return true;
    }

1 个答案:

答案 0 :(得分:1)

好吧,它似乎没有影响你的结果,但你确实有2个数据:字段。

除此之外,你正在对远程:规则进行处理,就像常规的jquery ajax调用一样......它不是那样的。它没有成功的回调等等......看起来应该更像这样。

remote: {
        type: "post",
        url: "WebForm1.aspx/IsValid",
        data: { username: function () {
            return $("#UserName").val();
                                      }
              }
        }

根据发布的值为true或false,您的服务器端回显“true”或“false”,这不是通过成功回调完成的。

类似

 public static Boolean IsValid()
{

  document.write("true");
}

基本上,它会点击url:你给它,传递数据中的变量:并等待true或false来确定它是否是有效代码。当你没有放入任何内容时你的表单验证工作的原因是因为所需的:如果它是空的,你有检查的真值......