0

我在注册表单中使用回调函数来检查用户名的有效性。验证[必需,funcCall[username_check]]..

这是javascript函数

function username_check(field, rules, i, options) {
    var username = $('#username').val();
    if (username == "" || username.length < 4) {
        return options.allrules.validate2fields.alertText;
    } else {
        jQuery.ajax( {
            type: "POST",
            url: "<?php echo site_url('signup/validate');?>",
            data: 'username=' + username,
            cache: false,

            success: function (response) {
                if (response == 1) {
                    return options.allrules.validate2fields.alertText;
                } else {
                    return options.allrules.validate2fields.alertError;
                }
            }
        });
    } 
}
$(document).ready(function(){
    $("#signup").validationEngine();
});

验证期间不显示 alertText。如果我在 $.ajax 提示符之外写下以下 ifelse 条件,则可以看到

      if (response == 1) {
          return options.allrules.validate2fields.alertText;
      } else {
          return options.allrules.validate2fields.alertError;
      }

这是一个错误还是我做错了什么。

4

1 回答 1

2

看起来您正在使用异步 AJAX 调用作为同步调用。成功回调函数中的代码很可能没有运行,即使它是作为 AJAX-success-callback 函数的结果返回的结果。验证引擎具有 AJAX 验证的特定设置。请参阅此处或此处:jQuery 验证引擎 AJAX 协议

于 2013-01-07T07:41:20.863 回答