在使用 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/