我使用MVC和jQuery验证xVal。这一切都很好,直到我到我的自定义验证器,做一个Ajax调用。XVal,JQuery Validate和Ajax哦,我的!
根据firbug Net Tab,ajax调用返回正确的值。但有些事情出错了,我无法弄清楚。
这里的JavaScript代码:
function CheckEmail() {
var res;
$.ajax({
type: "GET",
url: "/User/CheckEmail",
data: "email=" + $('#EmailAddress').val(),
success: function(result) {
res = result;
}
});
if (res == "True") {
return true;
}
else {
return false;
}
}
当我与萤火虫步,RES是示出作为未定义。我认为这是问题所在。
我花了4小时重新安排和更改此代码,没有任何东西似乎使它正常工作。
我有一个理论,它不等待,直到ajax完成运行if语句。任何人都可以确认或否认?
您可能想查看xVal。它使用你的域验证规则在你的视图中生成jQuery验证脚本(它也是服务器端验证)。 HTTP://blog.codeville。net/2009/09/17/xval-v10-now-available/ – jrummell 2009-09-18 20:25:46
这个函数被xVal调用以与自定义的服务器端验证属性对应:) – Patricia 2009-09-22 13:56:18
好的。我发现新版本的xVal(1.0)有一个远程规则类型。你可以在史蒂夫的博客上阅读所有关于它的内容:http://blog.codeville.net/2009/09/17/xval-v10-now-available/ 它解决了我的问题。 – Patricia 2009-10-02 20:30:11