jQuery Validation只验证第一个隐藏的输入元素?

时间:2012-05-01 17:11:12

标签: jquery asp.net asp.net-mvc validation

我的表单上有两个隐藏的输入字段,我已链接到jquery验证规则。这些是“全局”表单规则(例如,多个字段的总和不等于100%),因此我使用表单顶部的隐藏字段来显示适用于整个表单的消息。

它们的定义如下:

<input type="hidden" class="futuretotalsunder"/>
<input type="hidden" class="futuretotalsrequired"/>

以下是我的规则定义。你可以了解它。第一个规则检查是否有一堆文本框总计达到&lt; 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.");

1 个答案:

答案 0 :(得分:4)

我明白了。问题(奇怪的是)我的输入元素没有名称属性。一旦我添加它们就可以了。