1

フォーム コントロールに jquery 検証プラグインを使用しています。number、minlength、maxlength の適切な検証を使用して、3 つの異なるメッセージを使用して 3 つの個別のコントロールを簡単に検証できます。Web 参照、生年月日、郵便番号、その他のフィールドなど、複数のテキスト ボックスを持つコントロールがあります。以下は、Web 参照用の html です。

<input name="txtRef1" runat="server" type="text" id="txtRef1" />
<span class="ForwardSlash">-</span>
<input runat="server" name="txtRef2" type="text" id="txtRef2"  />
<span class="ForwardSlash">-</span>
<input runat="server" name="txtRef3" type="text" id="txtRef3"  />

上記の 3 つのテキスト ボックスのいずれかが空の場合、ユーザーは「フィールドが必要です」という 1 つのメッセージを受け取ります。フォームのデザイン レイアウトを含むデザインが壊れてしまうため、個々のメッセージを表示したくありません。上記を実現するスクリプトは次のとおりです。

function setuppagevalidationrecall() {

    $.validator.addMethod('example',

      function (value, element) {

              return ((value != "") && ($('#txtRef2').val() != "") && ($('#txtRef3').val() != ""));

          }, "Field is required");


    var validator = $("#form1").validate({
        rules: {
            txtRef1: {
                example: true,
                number: true,
                minlength: 3,
                maxlength: 3
            }

        }
    });

上記の 3 つのテキスト ボックスすべてに対して、検証メッセージとして 1 つのメッセージのみを取得するように、この機能を改善して、number、minlength、および maxlength もチェックするにはどうすればよいでしょうか。また、例のメソッドを引数のように動的にして、郵便番号 (2 つのテキストボックス)、生年月日 (3 つのテキストボックス、dd/mm/yyyy) などの任意のフィールドに適用できるようにします。

4

2 に答える 2

1

複数のコントロールに対して単一の検証メッセージを表示することが、グループの目的です。

エラー メッセージのグループ化を指定します。グループは、キーとしての任意のグループ名と、値としての要素名のスペースで区切られたリストで構成されます。グループ メッセージの配置場所を制御するには、errorPlacement を使用します。

使用する

groups:{ txtRef : "txtRef1 txtRef2 txtRef3" }

errorPlacement: function (error, element) {
                if (element.attr("name") == "txtRef1"
             || element.attr("name") == "txtRef2"
             || element.attr("name") == "txtRef3")
                    error.insertAfter("#txtRef3");
                else
                    error.insertAfter(element);
    }, 

ここで試してください:

http://jsfiddle.net/uZYMr/2/

于 2012-11-27T13:22:48.837 に答える
0

何をしようとしているのかは、 を正しく使用することで処理できますinvalidHandlererrorPlacementフォーム内の多くの要素に対してグローバル エラー メッセージを 1 つだけ格納jquery.validateするために を作成する必要はありません。function

jquery.validate同時にすべてのエラーが発生するため、時々迷惑になることがありますが、これが役立つと確信しています.

次の例を見てください。

http://jsfiddle.net/Lrvxk/

ご覧のとおり、カスタム関数や、思い通りに動作させるためのトリッキーなものはありません。

お役に立てれば :-)

于 2012-11-21T16:21:37.020 に答える