Два вопроса ...
1) Если ваше имя поля содержит скобки, точки или другие специальные символы, вы должны заключить это имя в кавычки.
"produto[]": {
required: true
}
2 ) Однако, если input
не содержит это точное имя, name="produto[]"
, то он не будет работать, поскольку вы не можете объявить массив в опции rules
в .validate()
. Опция rules
принимает только список имен отдельных полей.
Два возможных решения ...
1) Вы можете использовать метод .rules()
следующим образом. Использование селектора jQuery «начинается с» для выбора всего массива и jQuery .each()
для применения метода .rules('add')
к каждому полю в этой группе.
$('[name^="produto"]').each(function() { // select elements using "starts with" selector
$(this).rules('add', {
required: true,
// other rules
});
});
2) Однако, если только правило required
, вам не нужно будет объявлять его с помощью какого-либо JavaScript вообще. Вместо этого вы можете использовать атрибут required
HTML5, а плагин jQuery Validate все равно его поднимет.
<input type="text" name="produto[0]" required="required" />
<input type="text" name="produto[1]" required="required" />
<input type="text" name="produto[2]" required="required" />
<input type="text" name="produto[3]" required="required" />
<input type="text" name="produto[4]" required="required" />