我正在使用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;
}
答案 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来确定它是否是有效代码。当你没有放入任何内容时你的表单验证工作的原因是因为所需的:如果它是空的,你有检查的真值......