4

jQuery Validate を使用してフォームを検証しています。問題は、複数の選択ボックス(動的番号)を持つフォームがあり、動的な名前があることです->answers[$question['id']]

そのようにすべての入力フィールドに対処するために使用できる固定名がある場合、いくつかのスクリプトを見てきました。

$('#form').validate({
    rules: {
        "answers[]" = "required"
    }
});

しかし、私の例では、これは不可能です。何かアイデアはありますか? ありがとう!

4

2 に答える 2

14

まず、

そうではありません"answers[]" = "required"

これは"answers[]": "required"

等号の代わりにコロンがあることに注意してください。

$('#form').validate({
    rules: {
        "answers[]": "required"
    }
});

required第 2 に、それはルールを単一のフィールドにのみ割り当てname="answers[]"ます。

name="answers[1]"このルールを、name="answers[2]"、などを使用して複数のフィールドに簡単に割り当てたい場合はname="answers[3]"、次の 2 つのいずれかを行う必要があります...

required1)ルールをインラインで宣言します...

使用class:

<input type="text" name="answers[1]" class="required" />
<input type="text" name="answers[2]" class="required" />
<input type="text" name="answers[3]" class="required" />

または HTML5 の場合:

<input type="text" name="answers[1]" required="required">
<input type="text" name="answers[2]" required="required">
<input type="text" name="answers[3]" required="required">

そしてjQuery:

$('#form').validate(); // initialize the plugin

デモ #1 : http://jsfiddle.net/7JHWf/


2) または、メソッドを使用して、次で始まるrules()すべてのフィールドにルールを動的に割り当てます。nameanswers

$('#form').validate(); // initialize the plugin

// assign the rules
$('input[name^="answers"]').each(function() {
    $(this).rules('add', {
        required: true
    });
});

デモ #2 : http://jsfiddle.net/7JHWf/1/

于 2013-09-25T17:10:03.233 に答える