Я думаю, что мой мозг уже проверен и находится в праздничном режиме. Я пытаюсь сделать что-то очень простое, и я не могу заставить его работать на всю жизнь.Onsubmit, проверить количество отмеченных флажков
У меня есть форма, которая динамически генерируется с помощью кода на стороне сервера. Он может иметь один или несколько вопросов, которые имеют флажки в качестве параметров. Мне нужно проверить, чтобы убедиться, что хотя бы один элемент проверен в любой группе, и проверка должна выполняться в чистом JS (без jQuery).
Я стучал головой к столу, пытаясь заставить его работать:
HTML:
<form onsubmit="return validateCheckboxes();">
<h4>Which things do you enjoy?</h4>
<input type='checkbox' name='2' value='12' id='2_12'>
<label for='2_12'> Breathing</label><br />
<input type='checkbox' name='2' value='13' id='2_13'>
<label for='2_13'> Watching paint dry</label><br />
<input type='checkbox' name='2' value='14' id='2_14'>
<label for='2_14'> Nothing</label><br />
<br />
<br />
<input type="button" value="Submit">
Javascript:
function validateCheckboxes() {
if (document.querySelector('.2:checked')) {
alert('something is checked');
return true;
} else {
alert('NOTHING is checked');
return false;
}
};
jsFiddle Ссылка: https://jsfiddle.net/r6c4hxhj/
Я не уверен, что если '2_12' является действительной -edit- идентификатора, о, в HTML 5 это так. – GolezTrol
Ваша кнопка не является кнопкой отправки.Нажатие на него ничего не сделает – Bindrid
Вам нужно заменить запрос на элемент тем, который интересует вас. Следующее работает с вашим html как есть (нет необходимости добавлять классы к входам. 'Document.querySelectorAll ('input [type = checkbox]: checked') '- ** РЕДАКТИРОВАТЬ: ** Хотя вам все еще нужно активировать функцию' validateCheckboxes', как говорит Bindrind. – enhzflep