Во-первых, я бы полностью избегал форматирования кода в стиле Allman в JavaScript .
При объявлении правил внутри rules
объекта .validate()
вы можете только объявитьправило по одному полю за раз ...
$('#reportForm').validate({
rules: {
'report[invoices_attributes][0][invoice_type]': {
required: true,
},
'report[invoices_attributes][1][invoice_type]': {
required: true,
},
'report[invoices_attributes][2][invoice_type]': {
required: true,
},
// etc.
}
});
Если вы хотите объявить несколько полей, используйте метод .rules()
вместе с jQuery .each()
и любым подходящим селектором jQuery, который будет нацеленваша группа.
$('.myfields').each(function() {
$(this).rules('add', {
required: true
});
});
У вас также не может быть макета, в котором все проверяемые поля имеют один и тот же атрибут name
. Каждое поле должно иметь уникальный name
. Или одна «группа» флажков / переключателей может иметь общий name
. Обходного пути для этого не существует.
Если вам нужны только базовые правила, которые можно просто объявить с помощью логического значения, тогда вы можете использовать встроенные атрибуты вместо .rules()
метода или rules
объект.
<input name="foo" required="required" ....
альтернативно по классу ...
<input name="foo" class="required" ....
Дополнительная информация: https://stackoverflow.com/a/9056425/594235