2014-12-13 3 views
0

У меня есть несколько флажков в моей форме. Мне нужно заставить пользователя выбрать по крайней мере один флажок, иначе форма не будет отправлена. Я попробовал обязательный атрибут, но он проверяет, проверял ли пользователь все флажки.HTML 5 make checkbox требуется

Как это сделать?

+0

См http://stackoverflow.com/questions/6218494/using-the-html5-required-attribute-for-a-group-of-checkboxes –

+0

дать им один и тот же класс ' 'и напишите цикл' for', чтобы перебирать их, и 'if' по крайней мере один проверяется, чтобы поднять флаг до' true' –

ответ

0

Вы можете использовать Javascript, который просто прокручивает ваши html-флажки и устанавливает для Variable issomethingchecked значение TRUE, если хотя бы один из них выдернут.

демо http://jsfiddle.net/updpxrfj/2/

 var checkboxElements = document.getElementsByTagName("input"); 
     var issomethingchecked = false; 

     for(var i = 0; i < checkboxElements.length; i++) { 

     if(checkboxElements[i].type.toLowerCase() == 'checkbox') { 

      if (checkboxElements[i].checked == true) { 
       issomethingchecked = true; 
      } 

     } 

      if (issomethingchecked === true) { 
       // Continue with submiting the form 
        console.log(issomethingchecked); 
      } 
} 
2

Одним из решений является добавление необходимых атрибутов для всех флажков, и если хотя бы один из этих флажков установлен, снимите необходимые атрибуты для всех флажков с помощью JQuery.

var requiredCheckboxes = $(':checkbox[required]'); 

requiredCheckboxes.change(function(){ 
    if(requiredCheckboxes.is(':checked')) { 
     requiredCheckboxes.removeAttr('required'); 
    } 
    else { 
     requiredCheckboxes.attr('required', 'required'); 
    } 
}); 

DEMO

Смежные вопросы