Плагин validate будет проверять только текущий / выделенный элемент. Поэтому вам потребуется добавить пользовательское правило для валидатора, чтобы проверить все флажки.Аналогично ответу выше.
$.validator.addMethod("roles", function(value, elem, param) {
return $(".roles:checkbox:checked").length > 0;
},"You must select at least one!");
И на элементе:
<input class='{roles: true}' name='roles' type='checkbox' value='1' />
Кроме того, вы, скорее всего, найдете сообщение об ошибке, не совсем достаточное.Только 1 флажок выделен и отображается только 1 сообщение.Если щелкнуть другой отдельный флажок, который затем возвращает действительный для второго флажка, исходный все еще помечается как недействительный, и сообщение об ошибке по-прежнему отображается, несмотря на то, что форма действительна.В этом случае я всегда прибегал к самому отображению и сокрытию ошибок. Валидатор в этом случае заботится только о том, чтобы не отправлять форму.
Другой вариант, который у вас есть, - написать функцию, которая изменит значение скрытого ввода, чтобы оно было «действительным», по щелчку флажка, а затем присоединит правило проверки к скрытому элементу.Это будет подтверждено только в событии onSubmit, но будет отображать и скрывать сообщения в соответствующее время.Это единственные опции, которые вы можете использовать с плагином validate.
Надеюсь, это поможет!