Как сделать так, чтобы флажок также не нажимался на текстовую метку?

Checkboxes в формах HTML не имеет неявного этикетки. Добавление явной метки (некоторого текста) рядом с ним не переключает checkbox.

Как сделать так, чтобы флажок также не нажимался на текстовую метку?

Вы можете отредактировать исходный вопрос? В настоящее время ответ с наивысшей оценкой является лучшим для вопроса в том виде, в котором он сформулирован. Принятый ответ на самом деле отвечает на обновление вопроса, и я соответствующим образом изменил (изменится после редактирования).

Bobby Jack 09.10.2008 03:01
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
38
1
26 113
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Если вы правильно разметите свой HTML-код, в javascript нет необходимости. Следующий код позволит пользователю щелкнуть текст метки, чтобы установить флажок.

<label for = "surname">Surname</label>
<input type = "checkbox" name = "surname" id = "surname" />

Атрибут за элемента метки связан с атрибутом я бы элемента ввода, а все остальное делает браузер.

Это было тестирование для работы в:

  • IE6
  • IE7
  • Fire Fox

Бесполезно, если вы создаете несколько строк, у каждой из которых есть флажки, потому что вам придется дать каждой такое же имя и идентификатор, как показано здесь.

AndroidDev 26.09.2017 10:33

Вы можете обернуть свой флажок в метку:

<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 31.08.2009 21:21

@MrFox При использовании display: block флажок должен находиться внутри метки jsfiddle.net/Flandre/sBCLv/1

Andre 06.06.2012 18:06

Как указано @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;. Избегает повторения, хотя читаемость немного скомпрометирована.

ranu 13.06.2017 23:12

Вам нужно просто обернуть флажок в теге метки, как это

 <label style = "height: 10px; width: 150px; display: block; ">
  [Checkbox Label Here] <input type = "checkbox"/>
 </label>

FIDDLE

или вы также можете использовать атрибут за метки и я бы вашего флажка, как показано ниже

<label for = "other">Other Details</label>
<input type = "checkbox" id = "other" />

FIDDLE

Другие вопросы по теме