2

jquery 検証ルールにリンクしたフォームに 2 つの非表示の入力フィールドがあります。これらは一種の「グローバル」フォーム ルール (たとえば、複数のフィールドの合計が 100% に等しくない) であるため、フォームの上部に隠しフィールドを使用して、フォーム全体に適用されるメッセージを表示しています。

それらは次のように定義されます。

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

これが私のルール定義です。あなたはそれのアイデアを得ることができます。最初のルールは、一連のテキスト ボックスの合計が 100 未満かどうかをチェックし、2 番目のチェックは合計が 0 でないことを確認します。入力要素。2番目のものは決して発火しません。理由はありますか?

$.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.");
4

1 に答える 1

4

私はそれを考え出した。(奇妙なことに) 問題は、入力要素に name 属性がないことでした。それらを追加すると、うまくいきました。

于 2012-05-02T02:47:38.253 に答える