我的表单上有两个隐藏的输入字段,我已将它们链接到 jquery 验证规则。这些是“全局”表单规则(例如,多个字段的总和不等于 100%),因此我在表单顶部使用隐藏字段来显示适用于整个表单的消息。
它们的定义如下:
<input type="hidden" class="futuretotalsunder"/>
<input type="hidden" class="futuretotalsrequired"/>
这是我的规则定义。你可以明白它的想法。第一个规则检查一堆文本框的总数是否小于 100,第二个规则检查以确保总数不为 0。问题是,唯一触发的是适用于第一个隐藏的那个输入元素。第二个永远不会开火。知道为什么吗?
$.validator.addMethod("futuretotalsunder", function (val, element, params) {
alert("under");
var total = 0;
$(".TransferPercentTextBox").each(function () {
total = total + parseInt($(this).val());
});
if ((total < 100) && (total != 0)) {
window.location.href = "#Top";
return false;
}
else {
return true;
}
}, "Total percentage must equal 100%.");
$.validator.addMethod("futuretotalsrequired", function (val, element, params) {
var total = 0;
$(".TransferPercentTextBox").each(function () {
total = total + parseInt($(this).val());
});
if (total == 0) {
window.location.href = "#Top";
return false;
}
else {
return true;
}
}, "Transfer amount must be greater than 0.");
最佳答案
我明白了。问题(奇怪)是我的输入元素没有名称属性。一旦我添加它们,它就工作得很好。
关于jQuery 验证仅验证第一个隐藏的输入元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10401416/