在Jquery Validation插件中,我们使用元素规则。 有没有办法可以将表单的规则附加到特定元素?
答案 0 :(得分:2)
不,答案是它不能那样工作。将为每个输入元素评估规则,因为这是输入数据的位置。
否则,你的OP不清楚你需要做这件事的原因。
根据your comment:
“我想检查两个元素并查看它们是否具有特定值。我可以将规则附加到检查验证逻辑的元素之一。但我想知道我可以以任何其他方式执行此操作。 “
您可以使用自己的验证功能使用the addMethod()
method创建自定义规则,该函数将两个字段与值,彼此或任何您想要的值进行比较。
您可以在一个或多个字段中声明此新规则,与声明任何其他标准规则或方法相同。
根据需要,您可以选择使用the groups
option 将类似的重复错误消息合并为一个。
答案 1 :(得分:0)
我有点发现了一种带有正式验证器的破解方式。希望这对那些只想运行返回true或false来确定有效性的方法的人很有帮助。
在我的表单中,我添加了两个元素:
首先,我要在哪里宣布错误。
<div id="customErrorPlacement"></div>
第二,我添加了一个新的隐藏输入元素
<input class="hidden" type="text" name="bevalid"></input>
在我的js文件中
我的表单有效功能
var myCustomValidFunc = function() {
//test form here: return true or false;
}
我在调用form.validate()之前将自定义函数添加到规则集中
$.validator.addMethod('myCustomValidFunc', myCustomValidFunc, $.validator.format("This form isn't right; here's how to fix it"));
然后以我的表格验证选项:
rules: {
.....
'bevalid': {
"myCustomValidFunc": true
}
},
errorPlacement: function(error, element) {
if (element.attr("name") == 'bevalid') {
error.insertBefore($("#customErrorPlacement"));
} else {
error.insertAfter(element);
}
}
}