2

jquery 検証プラグインを使用して、次のようにルール equalTo を使用してフィールドを検証しています。

$('#booking').validate({

ignoreTitle: true, 
rules: {
    payments: {
        equalTo: {
            param: "#sales",
            depends: function(element) { return $("#status").val() == 'invoiced'; }
        }
    },

}
});

私はこれを機能させることができますが、選択オプションが特定の値である場合にのみこのルールを適用したいと思います。私はこれで迷っており、別のフィールド値に依存する equalTo ルールをオプションにする方法がわかりません

私は依存ルールを見ましたが、これに関するドキュメントを見つけることができません

誰か私にいくつかの指針を教えてもらえますか?

私は助けるためにjsfiddleを作成しました:

http://jsfiddle.net/longestdrive/SneAF/2/

ありがとう

更新:依存関係を試しましたが、期待どおりに機能しません:

同様の/重複した質問もいくつか見つかりました: jQuery Validation - 別のフィールドが入力されjQuery 検証が依存する場合にのみフィールドが必要です

4

1 に答える 1

4

depends-ruleにエラーがありました:

  1. 現在選択されているオプションを取得するには、別のセレクターを使用する必要があります。
    $("#status option:selected")
  2. 従属オプションの値はInvoicedでしたinvoiced

これが最終結果です (RobM が述べたように、より正確なエラー メッセージを指定することもできます。

フィドル

$('#booking').validate({
    ignoreTitle: true, 
    rules: {
        payments: {
            equalTo: {
                param: '#sales',
                depends: function(element) { 
                    return $("#status option:selected").val() == 'invoiced'; 
                }
            }
        }
    },
    messages: {
        payments: {
            equalTo: "Payments must equal Sales when Status is 'Invoiced'."
        }
    }

});
于 2013-08-17T21:51:45.173 に答える