1

私はこのHTMLコードを持っています:

<section id="variations_holder">
    <input type="text" name="field1" class="pprice" />
    <br/>
    <input type="text" name="field2" class="pprice" />
    <br/>
    <input type="submit" />
</section>

これは、検証を処理するために使用しているコードです。

$('#variations_holder input.pprice').each(function() {
    $(this).rules('add', {
        required: true,
        number: true,
        messages: {
            required: "Debes introducir un precio de la variación",
            number: "El precio de la variación debe ser un valor numérico o decimal"
        }
    });
});

ただし、HTML が次のようになっている場合は機能します (入力に同じ名前があることに注意してください)。

<section id="variations_holder">
    <input type="text" name="field1" class="pprice" />
    <br/>
    <input type="text" name="field1" class="pprice" />
    <br/>
    <input type="submit" />
</section>

同じコードが機能しなくなり、次のエラーが発生します。

TypeError: e.validator.methods[o] は定義されていません

この問題を解決するにはどうすればよいですか?

これは、この質問から派生したものです

4

2 に答える 2

9

引用OP:

"... HTML は次のようになります (注意:入力には同じ名前があります):"

<input type="text" name="field1" class="pprice" />
<input type="text" name="field1" class="pprice" />

「この問題を解決するにはどうすればよいですか?」

5回目は…

すべての属性に同じ値を持つ複数の入力要素を持つことはできません。name

プラグインは要素を追跡できないためです。この仕様には解決策も回避策もありません。

(または要素のコレクションまたは「グループ」は「1 つのデータ入力」と見なされるため、この単一のフォーム データを表すグループ内でのみ共有できます。checkboxradioname )


引用OP:

「これはこの質問から派生したものです」

その同じ質問に対する私の答えのどこで、私は言った:

  1. 「... jQuery Validate プラグインでは、各入力要素に一意の name 属性が含まれている必要があります。これが、プラグインが要素を追跡する方法です...」

OP に関する2 番目のコメントと同様に、私は次のように述べました。

  1. 「同じ名前の要素を複数持つことはできません。jQuery Validate では、名前が一意である必要があります。」

そして私の答えへのコメントで、私は言った:

  1. ただし、ルールの作成方法と適用方法に関係なく、各要素には一意の名前を含める必要があります。

OP に関する最後のコメントで、私は次のように述べました。

  1. 「... jQuery Validate プラグインは、プラグインが内部的にそれらを追跡する方法であるため、データ入力要素に一意の名前を必要とします。この要件を回避する方法はありません。」

以下も参照してください。

ソース:

于 2013-10-09T21:56:11.530 に答える
-1

私は同じ問題を抱えていましたが、あなたの場合の解決策は次のとおりです。

使用したプラグイン:

HTML:

<input type="text" name="field1[]" class="pprice-group" />
<input type="text" name="field1[]" class="pprice-group" />

JS:

$("#form").validate({
    // Rules for form validation
    rules:
    {
        "field1[]":
        {
            require_from_group: [1, ".pprice-group"]
        }
    },

    // Messages for form validation
    messages:
    {
        "field1[]":
        {
            require_from_group: 'At least {0} field required'
        }

    }
});
于 2015-02-26T08:34:26.243 に答える