jquery - 在 JQuery 验证中避免 'async: false'

标签 jquery ajax jquery-validate

我编写了一个 JQuery 验证方法来检查自定义字段。为了检查数据,我使用 AJAX 调用服务器端脚本,该脚本依次返回 true 或 false。如果为 false,则响应还将包含错误消息:

var errorMessage;
var rtErrorMessage = function() {
    return errorMessage;
}

jQuery.validator.addMethod('customvalidation', function(value, element) {
    var valid = true;
    var url = '/validation?data=' + value;
    $.ajax({
        url: url,
        type: 'get',
        dataType: 'json',
        async: false,
        success: function(responseData) {
            if (responseData && !responseData.isValid) {
                errorMessage = responseData.errorMessage;
                valid = false;
            }
        }
    });

    return valid;
}, rtErrorMessage);

这可行,但是同步性的转变意味着浏览器在请求期间卡住。这是相当烦人的,JQuery 甚至建议不要这样做......但是有什么替代方案吗?

提前致谢。

最佳答案

使用 jquery validate 的远程方法 - 如果返回 true 或 false,您会收到默认错误消息,并且该字段被标记为有效/无效。

如果您返回任何其他字符串,例如“这是我的错误消息”,则显示的错误消息将是您返回的字符串。

如果文档另有说明,它们已经过时,我正在使用 jquery validate 1.10.0

关于jquery - 在 JQuery 验证中避免 'async: false',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14958792/

相关文章:

jquery div 标题悬停图像

javascript - 在 google chrome 中使用 'please wait gif image "的问题

背景中的 jQuery 幻灯片 - 可能是错误的 CSS?

javascript - 如何将数据从数据库加载到组合框(自动完成)

jquery验证: remove error message from form

jquery - 您可以使用 bassassistance 的 jquery 验证插件单独验证字段集吗?

javascript - 在同一页面上显示提交的表单数据

ruby-on-rails - 我们如何规避这些远程表单的缺点?

javascript - 是否可以在 Coffeescript 中使用 AJAX 调用初始化变量

jquery - 提交 jquery 之前验证表单