rules: {
'rateType[]': { // <- does not match any NAME on the form!
required: true
}
}
Идентификатор, используемый в ваших параметрах , должен соответствовать названию поля.
rules: {
'rateType[0][type]': {
required: true
},
'rateType[0][rate]': {
required: true
},
'rateType[0][percent]': {
required: true
},
// etc. etc. for every field on the form.
}
Поскольку это довольно громоздко, вы можете использовать .rules()
method вместе с более общим c селектором вроде "начинается с" . Вам понадобится .each()
, поскольку этот плагин проверки не принимает выборку с более чем одним элементом.
$("[name^='rateType']").each(function() {
$(this).rules('add', {
required: true
});
});
ПРИМЕЧАНИЕ : метод .rules()
можно вызывать только после Вы вызвали свой метод .validate()
.
$(function () {
$(".test_frm").validate({
submitHandler: function (form) {
form.submit();
},
ignore: [],
});
$("[name^='rateType']").each(function() {
$(this).rules('add', {
required: true
});
});
});
В качестве альтернативы, если вы хотите решение HTML, вы можете просто добавить встроенный класс или атрибут HTML5 и jQuery Validate плагин подберет один из них автоматически.
<input class="form-control" type="text" name="rateType[0][type]" class="required" />
ИЛИ
<input class="form-control" type="text" name="rateType[0][type]" required="required" />