Проверить динамическое поле JQuery
Добрый день, я наткнулся на следующий вопрос.
Я использую плагин проверки jQuery для проверки моей формы v1.13.0 на стороне клиента.
Работает просто отлично.
Но проблема, которую я не могу решить:
У меня есть имя поля "product []", которое является массивом. У меня может быть один или у меня может быть 20 продуктов в этом массиве.
Вот мой код:
data_emissao: {required: true},
forma_pagamento: {required: true},
produto[]: {required: true}, // tried this with no sucess
Кто-нибудь когда-нибудь сталкивался с этой проблемой?
2 ответа
Два вопроса...
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" />
Если вы используете produto
как массив, вы должны указать его индекс, иначе он не будет работать так, как ожидалось. Попробуйте использовать produto[0]
чтобы указать, что вам требуется хотя бы одно значение в вашем массиве.