我正在使用从以下网址
找到的jQuery Validate Pluginhttp://bassistance.de/jquery-plugins/jquery-plugin-validation/
我只是想制定验证规则来检查记录是否存在于数据库中。我还制作了一个像blow& amp;使用 $。validator.addMethod 添加它,但它不起作用。有人可以建议怎么做吗?
$.validator.addMethod("check_exists", function(value) {
$.ajax({
type: "POST",
url: "xyz.com/check_exists.php",
data: $( "#frmEdit" ).serialize(),
success: function(result){
if(result=="exists")
return false;
else
return true;
},
});
}, 'This record is already exists');
答案 0 :(得分:1)
验证插件有一个内置的remote
选项,您提供了一个URL,并且将从插件中向服务器发出请求。对于你正在做的事情,没有必要创建一个全新的方法
http://docs.jquery.com/Plugins/Validation/Methods/remote#options
答案 1 :(得分:0)
您遇到的问题是(1)AJAX调用是异步的,因此方法在AJAX调用完成之前返回,以及(2)回调处理程序中的return语句从处理程序返回不是验证功能。 解决此问题的最简单方法是使用remote验证方法。如果您想自己动手,则需要让AJAX调用同步(async: false
)并且将结果捕获到从函数返回的变量中。
$.validator.addMethod("check_exists", function(value) {
var status;
$.ajax({
type: "POST",
async: false,
url: "xyz.com/check_exists.php",
data: $( "#frmEdit" ).serialize(),
success: function(result){
status = result=="exists";
},
});
return status;
}, 'This record is already exists');