Я создал тест с базой данных с тремя типами вопросов – input type = radio, text и checkbox. Если я вставляю его перед закрывающим тегом, он отлично работает для радио и текстовых вопросов, но не для флажков.
Проблема в том, что каждый вопрос по флажку имеет несколько возможных ответов – от трех до шести. И число этих вариантов, которые являются правильными ответами, также меняется.
Но когда я добавляю «обязательный» к скрипту checkbox, пользователь должен выбрать КАЖДЫЙ ответ, чтобы перейти к странице результатов. Вот как выглядит код:
<label for="q'.$QID.'-'.$Value.'"><input type="checkbox" name="q'.$QID.'[]" id="q'.$QID.'-'.$Value.'" value="'.$Value.'" **required**> '.$QA.'</label>
Я нашел страницу HTML5 Required Attribute , которая, как представляется, устраняет эту проблему. Если я правильно понимаю, вы можете исправить проблему, вставив «требуется» только в одном элементе. Поэтому, если вы вставляете его в ответ A, пользователь может предположительно выбирать ответы C и D, и все будет работать нормально.
Если это правильно, то есть ли способ сделать «требуемый» показ только в одном флажке, а не во всех из них?
Использование required
с использованием условия для первого флажка группы. Я предполагаю, что ваш html-код написан в .php-файлах.
$required = ($Value == 0) ? "required" : ""; //condition to check if the value is first. since it is database driven it would be better to check the key instead of the value.; echo '<label for="q'.$QID.'-'.$Value.'"><input type="checkbox" name="q'.$QID.'[]" id="q'.$QID.'-'.$Value.'" value="'.$Value.'" '. $required .'> '.$QA.'</label>';
Другим решением является добавление обязательного атрибута с помощью JQuery. Например, если пол – это имя группы флажков, то:
$('input[type=checkbox][name=gender]')[0].attr('required', 'required');;