JQuery验证自定义方法问题

JQuery验证自定义方法问题,jquery,ajax,jquery-validate,Jquery,Ajax,Jquery Validate,我正在使用JQuery验证插件,并添加了一个新方法来检查数据库中名称的可用性。 Php脚本运行良好,并正确返回1或0。但是该方法总是返回“Name不可用” 数据库中有控制台日志(“abc”用户): 当我们在xammp本地服务器上测试时,这一切都很好,但在真正的服务器上不起作用 正如人们评论的那样-您不能返回$.post的值,因为您的loginAvailability函数在$.post之前返回。幸运的是,jQueryValidate为您提供了一种方法来解决这个问题 $('form').valida

我正在使用JQuery验证插件,并添加了一个新方法来检查数据库中名称的可用性。 Php脚本运行良好,并正确返回1或0。但是该方法总是返回“Name不可用”

数据库中有控制台日志(“abc”用户):


当我们在xammp本地服务器上测试时,这一切都很好,但在真正的服务器上不起作用

正如人们评论的那样-您不能返回
$.post
的值,因为您的
loginAvailability
函数在
$.post
之前返回。幸运的是,jQueryValidate为您提供了一种方法来解决这个问题

$('form').validate({
    rules: {
        username: {
            required:true,
            remote: {
               url: "CheckLogin.php",
               type:'post',
               data: {
                   login: function() {
                      return $( "#username" ).val();
               }
            }
        }
    }
});

你不能那样做。。。。您使用的是异步的ajax请求,因此无法从中返回值。。。请看,您可以尝试同步发出请求:async:false
0
abc
1
qwe
$('form').validate({
    rules: {
        username: {
            required:true,
            remote: {
               url: "CheckLogin.php",
               type:'post',
               data: {
                   login: function() {
                      return $( "#username" ).val();
               }
            }
        }
    }
});