2016-11-26 20 views
0

私は、その一部が繰り返されているフォームを持っています。そのため、入力フィールドの名前はフィールドのグループの一部です。たとえば、次のようにjQueryの検証 - 繰り返しフィールドのルールとメッセージ

<input type="text" name="order[line1][address1]" id="address1_line1"> 
<input type="text" name="order[line2][address1]" id="address1_line2"> 

例えば、私は、これらのフィールドのためのルールやメッセージを設定する方法を見つけることができませんjQueryの検証プラグイン(https://jqueryvalidation.org)を使用して:*ビーイングと..

$("#registration-form").validate({ 
     rules: { 
      order[*][address1]: "required", 
     }, 
     messages: { 
      order[*][address1]: "Please enter an address", 

     } 
    }); 

ワイルドカード。

私はそうのような入力に必要なタグを追加することができます。

<input type="text" name="order[line1][address1]" id="address1_line1" required> 

...しかし、私はまだ検証にカスタムメッセージを追加することはできません。

誰の助けにも感謝します。

答えて

0

カスタム検証で変数を作成できます。

var ruleSet = { 
    required: true, 
    number: true 
}; 

$('#myForm').validate({ 
    rules: { 
     field1: ruleSet, 
     field2: ruleSet, 
     field3: ruleSet 
    } 
}); 
+0

"address"を含むすべてのフィールド名にrequiredルールを適用します。このような何かを、行うことができますしかし、私は、特に私の分野を対象としますか? –

+0

私のfiled1の代わりに、field2あなたは 'order [line1] [address1]' 'order [line2] [address2]' – Mardzis

0

あなたが直接これを行うことはできません...

$("#registration-form").validate({ 
    rules: { 
     order[*][address1]: "required", 
    }, 
    messages: { 
     order[*][address1]: "Please enter an address", 

    } 
}); 

...プラグインが要素ではなく、ワイルドカードセレクタの正確な nameを探しているので。

しかし、a "contains" selectora jQuery .each()と組み合わせthe .rules('add') methodを使用して、あなたは...

$('[name*="address"]').each(function() { 
    $(this).rules('add', { 
     required: true, 
     messages: { 
      required: "Please enter an address" 
     } 
    }); 
}); 
関連する問題