





Если вы правильно разметите свой HTML-код, в javascript нет необходимости. Следующий код позволит пользователю щелкнуть текст метки, чтобы установить флажок.
<label for = "surname">Surname</label>
<input type = "checkbox" name = "surname" id = "surname" />
Атрибут за элемента метки связан с атрибутом я бы элемента ввода, а все остальное делает браузер.
Это было тестирование для работы в:
Бесполезно, если вы создаете несколько строк, у каждой из которых есть флажки, потому что вам придется дать каждой такое же имя и идентификатор, как показано здесь.
Вы можете обернуть свой флажок в метку:
<label style = "display: block; padding: 50px 0 0 50px; background-color: pink; width: 80px; height: 80px">
<input type = "checkbox" name = "surname">
</label>
Ронни,
Если вы хотите заключить текст метки и флажок внутри элемента оболочки, вы можете сделать следующее:
<label for = "surname">
Surname
<input type = "checkbox" name = "surname" id = "surname" />
</label>
Обтекание этикеткой по-прежнему не позволяет щелкнуть «где-нибудь в поле» - по-прежнему только по тексту! Это делает мою работу:
<div onclick = "dob.checked=!dob.checked" class = "checkbox"><input onclick = "checked=!checked" id = "dob" type = "checkbox"/>Date of birth entry must be completed</div>
но, к сожалению, у него много javascript, который эффективно переключается дважды.
Установите свойство CSS display для метки как блочный элемент и используйте его вместо вашего div - он сохраняет семантическое значение метки, позволяя при этом любой стиль, который вам нравится.
Например:
label {
width: 100px;
height: 100px;
display: block;
background-color: #e0e0ff;
}<label for = "test">
A ticky box! <input type = "checkbox" id = "test" />
</label>Галочку лучше поставить за пределы метки.
@MrFox При использовании display: block флажок должен находиться внутри метки jsfiddle.net/Flandre/sBCLv/1
Как указано @Gatekiller и другими, правильным решением является
Щелчок по тексту - это хорошо, но есть еще одна причина использовать
Очень неприятно столкнуться с формой, которая читает «Выберите способ доставки: переключатель 1, переключатель 2, переключатель 3».
Обратите внимание, что веб-доступность - сложная тема;
это должно работать:
<script>
function checkbox () {
var check = document.getElementById("myCheck").checked;
var box = document.getElementById("myCheck")
if (check == true) {
box.checked = false;
}
else if (check == false) {
box.checked = true;
}
}
</script>
<input type = "checkbox"><p id = "myCheck" onClick = "checkbox();">checkbox</p>
если нет, пожалуйста, помогите мне!
Улучшение: box.checked = !check;. Избегает повторения, хотя читаемость немного скомпрометирована.
Вам нужно просто обернуть флажок в теге метки, как это
<label style = "height: 10px; width: 150px; display: block; ">
[Checkbox Label Here] <input type = "checkbox"/>
</label>
или вы также можете использовать атрибут за метки и я бы вашего флажка, как показано ниже
<label for = "other">Other Details</label>
<input type = "checkbox" id = "other" />
Вы можете отредактировать исходный вопрос? В настоящее время ответ с наивысшей оценкой является лучшим для вопроса в том виде, в котором он сформулирован. Принятый ответ на самом деле отвечает на обновление вопроса, и я соответствующим образом изменил (изменится после редактирования).