Я использую плагин проверки 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 из них, показанных в разных местах? Я не хочу просто показывать одну ошибку.
Я также мог бы создать правило класса, но это не решило бы мою проблему создания нескольких меток ошибок и размещения их в соответствующих позициях.