#javascript #jquery #validation
#javascript #jquery #проверка
Вопрос:
Я использую плагин проверки jQuery и хочу добавить некоторую пользовательскую логику. У меня есть ряд флажков, с которыми связаны дочерние флажки. Для определенных (не всех) из этих родительских флажков я хочу потребовать, чтобы был установлен один из дочерних флажков. У меня нет проблем с жестким кодированием для этого, поэтому я добавлял подобное поле в свой DOM:
<input type="hidden" id="child_required_1" class="child_required_1" />
А затем добавляем пользовательский валидатор, подобный этому:
jQuery.validator.addMethod('child_required_1', function(val, element) {
if($('#product_responses_1').length > 0) {
if($('#product_responses_1').is(':checked')) {
var count = $("input:checkbox:checked[id^='children_tags_1_']").length;
if(count == 0) {
return false;
}
}
}
return true;
}, 'You must select at least one child.');
Это работает отлично. Но когда я дублирую все это и добавляю «_2», кажется, срабатывает только один из валидаторов. Итак, насколько я могу судить, пользовательские валидаторы уникальны для каждой формы? Если это так, то как я должен справиться с подобной ситуацией, когда мне может понадобиться, чтобы 15-20 из них отображались в разных местах? Я не хочу показывать только одну ошибку.
Я мог бы также создать правило класса, но это не решает мою проблему создания нескольких меток ошибок и размещения их в соответствующих позициях.
Ответ №1:
По-видимому, его использование в скрытом поле не сработало, но когда я удалил скрытые поля и применил этот класс к самим фактическим флажкам, все сработало нормально. Не совсем уверен, почему.