Подтверждающий плагин проверяет только текущий/сфокусированный элемент. Поэтому вам нужно будет добавить настраиваемое правило к валидатору для проверки всех флажков. Как и в предыдущем ответе.
$.validator.addMethod("roles", function(value, elem, param) {
if($(".roles:checkbox:checked").length > 0){
return true;
}else {
return false;
}
},"You must select at least one!");
И на элементе:
<input class='{roles: true}' name='roles' type='checkbox' value='1' />
Кроме того, вы, вероятно, найти дисплей сообщение об ошибке, не вполне достаточно. Только 1 флажок подсвечивается и отображается только 1 сообщение. Если вы нажмете еще один отдельный флажок, который затем вернет действительный для второго флажок, исходный будет по-прежнему отмечен как недопустимый, и сообщение об ошибке все еще отображается, несмотря на то, что форма действительна. Я всегда прибегал к простому отображению и скрытию ошибок в этом случае. Затем валидатор заботится только о том, чтобы не отправить форму.
Другой вариант, который у вас есть, - это написать функцию, которая будет изменять значение скрытого ввода как «действительное» при щелчке по галочке, а затем прикрепить правило проверки к скрытому элементу. Это будет проверяться только в событии onSubmit, но будет отображать и скрывать сообщения в соответствующие моменты времени. Это о единственных вариантах, которые вы можете использовать с плагином validate.
Надеюсь, что это поможет!
Этот ответ должен быть устаревшим или чем-то еще. Вы можете просто использовать правило 'required', если все флажки в группе имеют одно и то же имя. См. [Реальный правильный ответ] (http://stackoverflow.com/a/4120320/594235) и эту демонстрацию: http://jsfiddle.net/AsuyC/ – Sparky
Sparky - Спасибо за указание в правильном направлении. – Nanu
Что случилось с этим именем класса? '{role: true}' не подходит для класса ... – bradlis7