javascript - 使用 jquery.validate 循环每个失败的规则

标签 javascript jquery validation jquery-validate unobtrusive-validation

在使用 jquery.validate 库验证我的表单后,我需要能够循环当前失败的规则。

我查看了以下内容:

$('form').validate().errorList

这会返回错误的消息和元素,但不会返回失败的规则/名称。

$('form').validate().errorMap

这仅返回一个元素 ID/消息对。

$('form').validate().settings.rules

这将返回所有元素及其关联规则的列表,但没有值指示哪些元素当前失败。

我需要包含元素(或其 ID)和失败的规则的内容。当然,一个元素可能会映射到多个失败的规则。

如果有一个事件我可以与不显眼的库 Hook (因为并非所有事件似乎都得到不显眼的支持),这将为我提供失败时的规则和元素,这将是理想的。

最佳答案

如果您正在寻找可与扩展一起使用的方法,您可以执行以下操作:

//update FormatAndAdd function to store failed rule values in data
var oldFormatAndAdd = validator.formatAndAdd;

validator.formatAndAdd = function (element, rule) {
    oldFormatAndAdd.apply(this, arguments);
    $.data(element, "failedMethod", rule.method);
};

var oldCheck = validator.check;

//update check to remove failed rules from data if element is valid
validator.check = function (element) {
    var result = oldCheck.apply(this, arguments);
    if (result) {
        $.data(element, "failedMethod", null);
    }
};

我只是将规则信息存储在数据中,但我确信您可以更新它来操作 errorList。

关于javascript - 使用 jquery.validate 循环每个失败的规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11569420/

相关文章:

javascript - jqplot html 无法在新窗口中正确呈现

javascript - 使用索引和 Jquery 设置 HTML 元素的颜色

jquery - div 和样式表单中的中心表单

javascript - 无法使用输入类型在 IE9 中获取 slider =使用 Angular JS 的范围

c# - 我可以编写正则表达式来检查某些条件下的密码吗?

javascript - angular2,为什么这个 html5 验证在 ngForm 内外不起作用

python - 如何在 Tastypie 中验证唯一的在一起约束?

javascript - 嵌套选项不打印所有路径

javascript - 如何在使用标准 JavaScript 结束后立即重新启动 CSS 转换?

javascript - 将 (this.state) 类型变量直接插入 JSX