我正在使用JQuery验证插件,并添加了一种新方法来检查数据库中名称的可用性。 PHP脚本运行良好,并正确返回1或0。但该方法始终返回“名称不可用”。
jQuery.validator.addMethod("loginAvailability", function(value, element) {
$.post("CheckLogin.php", { login: value },
function(result){
console.log(result);
console.log(value);
return result;
}
)},"Name is not available");
有控制台日志(数据库中的“abc”用户):
0
abc
1
qwe
当我们在xammp本地服务器上测试时,一切正常,但在真实服务器上不起作用。
答案 0 :(得分:2)
正如人们评论的那样 - 您无法返回$.post
的值,因为您的loginAvailability
函数会在$.post
之前返回。幸运的是,jQuery Validate提供了一个remote方法来处理这个问题!
$('form').validate({
rules: {
username: {
required:true,
remote: {
url: "CheckLogin.php",
type:'post',
data: {
login: function() {
return $( "#username" ).val();
}
}
}
}
});