Атрибут type тега <input> со значением radio обычно используется для создания группы радиокнопок (переключателей), описывающих набор взаимосвязанных параметров. Одновременно пользователь может выбрать лишь одну радиокнопку из предложенных. Радиокнопки обычно отображаются как небольшие кружки, которые заполняются или подсвечиваются при наведении.
<input type="radio">
Исходный код к данному интерактивному примеру находиться на GitHub репозитории. Если вы желаете внести свой вклад в проект интерактивных примеров, то склонируйте удалённый репозиторий https://github.com/mdn/interactive-examples и отправьте нам запрос на включение сделанных вами изменений «pull request».
Радиокнопки называются так потому, что выглядят и функционируют в схожей манере с кнопками старомодных радиоприёмников, подобных представленному ниже.
Примечание
: Чекбоксы похожи на радиокнопки, но с одним важным отличием: радиокнопки предназначены для выбора одного значения из предложенных, в то время как чекбоксы позволяют «включать» и «выключать» значения. Если существует несколько элементов управления, то с помощью радиокнопок пользователь сможет выбрать лишь один из них, а чекбоксы позволят выбрать несколько значений одновременно.
Атрибут value — это строка DOM, содержащая значение радиокнопки. Это значение никогда не показывается пользователю его веб-браузером. Атрибут value используется для того, чтобы точно определить какая из радиокнопок была выбрана пользователем.
Создание группы радиокнопок
Группа радиокнопок определяется путём присвоения каждой радиокнопке в данной группе одного и того же значения атрибута (name). Выбор любой радиокнопки в этой группе автоматически отменяет выбор другой радиокнопки в той же группе.
Вы можете создать любое количество групп радиокнопок, если каждой из этих групп будет присвоено своё уникальное значение атрибута name.
Например, если в вашей форме необходимо запросить предпочитаемый способ контакта с пользователем, то вы можете создать три радиокнопки с name= "contact" , но с разными value = "email", value ="phone" и
value ="mail" соответственно. Пользователь не видит атрибуты name и value (если только вы не добавляете код для их отображения).
Здесь вы видите три радиокнопки, каждая из которых имеет атрибут name со значением "contact" и уникальный атрибут value, который однозначно идентифицирует эту радиокнопку в данной группе. Каждой радиокнопке присвоен уникальный id, связанный с тегом <label> через атрибут
for для установления связи между конкретной меткой и конкретной радиокнопкой.
Вы можете опробовать этот код здесь:
Представление данных группы радиокнопок
Когда представленная выше форма отправляется на сервер с информацией о выбранной радиокнопке, то её данные включают запись в виде «contact=name». Например, если пользователь кликает на радиокнопку «Phone», а затем отправляет форму на сервер, данные формы будут включать в себя строку "contact=phone".
Если вы пренебрежёте атрибутом value в вашем HTML, то отправленные данные просто присвоят данной группе значение "on". То есть, если пользователь кликнет на радиокнопку «Phone» и отправит форму, итоговые данные отобразятся как
"contact=on" и будут абсолютно бесполезны. Поэтому никогда не забывайте указывать атрибут value!
Примечание: Если в отправленной форме не была выбрана ни одна радиокнопка, то группа радиокнопок вообще не будет включать в себя никакие данные, так как отсутствуют значения для отправки.
Поскольку отправлять пустую форму в большинстве случаев не имеет никакого смысла, то разумно оставлять одну радиокнопку активированной по умолчанию с помощью атрибута "checked". Смотрите здесь Selecting a radio button by default.
Давайте добавим немного кода в наш пример для того, чтобы изучить данные, полученные из этой формы. HTML изменяется путём добавления блока
Затем добавим немного JavaScript. Установим обработчик события submit (en-US), которая будет отправляться при клике пользователя на кнопку «Отправить»:
var form = document.querySelector("form");
var log = document.querySelector("#log");
form.addEventListener("submit", function(event) {
var data = new FormData(form);
var output = "";
for (const entry of data) {
output = entry[0] + "=" + entry[1] + "\r";
};
log.innerText = output;
event.preventDefault();
}, false);
Опробуйте этот пример и убедитесь, что для группы радиокнопок
"contact" будет только один результат.
Мы уже осветили основные моменты работы с радиокнопками выше. Давайте рассмотрим другие распространённые функции и методы, связанные с использованием радиокнопок, о которых вам нужно знать.
Выбор радиокнопки по умолчанию
Чтобы установить радиокнопку как выбранную по умолчанию, вам необходимо подключить атрибут checked, как показано ниже в немного изменённой версии предыдущего примера.
В данном случае первая радиокнопка будет выбрана по умолчанию.
Примечание: Если вы устанавливаете атрибут checked более чем на одну кнопку, то стоит иметь в виду, что каждый последующий атрибут checked отменяет предыдущий, то есть как отмеченная будет выбрана последняя радиокнопка с атрибутом
checked. Это происходит потому, что в каждой группе радиокнопок одновременно может быть выбрана только одна кнопка, и браузер автоматически отменяет другие выбранные до этого радиокнопки.
Providing a bigger hit area for your radio buttons
В примерах, представленных выше, вы могли заметить, что можно выбрать радиокнопку, кликнув как на соединённый с ней элемент <label>, так и на саму кнопку. Это действительно полезная функция HTML-форм, которая облегчает пользователям выбор нужной опции, особенно на устройствах с небольшим экраном, таких как смартфоны. Помимо специальных возможностей, это другая веская причина для правильного использования элементов
<label> в ваших формах.
Радиокнопки не участвуют в проверке ограничений, так как у них нет реальных значений для ограничения.
Следующий пример отображает немного более проработанную версию примера, который мы использовали на протяжении всей статьи, с некоторыми дополнительными стилями и с лучшей семантикой, установленной с помощью специализированных элементов.
Здесь не так много нового, кроме дополнения в виде элементов <fieldset> и <legend>, которые позволяют сгруппировать элементы форм между собой функционально и семантически.
Самым примечательным здесь является использование свойства appearance с использованием префиксов некоторых браузеров. По умолчанию радиокнопки (и чекбоксы) уже имеют собственные стили в каждой операционной системе. Придав свойству appearance значение none, вы можете отменить все «родные» настройки стилей операционной системы и создать свои собственные. Здесь мы использовали свойства border и border-radius, а также свойство transition для создания хорошо анимированного выбора радиокнопок. Заметьте также, что псевдокласс :checked используется для указания стилей внешнего вида кнопок при их выборе.
Стоит иметь в виду, что свойство appearance неплохо работает для создания простых стилей, но имеет тенденцию вести себя несколько непоследовательно в некоторых браузерах и полностью не работает в Internet Explorer. Тщательно проверяйте как работает ваш сайт в каждом браузере!
Обратите внимание, что при клике на радиокнопку, на предыдущей выбранной кнопке появляется мягкий эффект угасания. Кроме того, стиль и окраска легенды и кнопки «Submit» имеет сильный контраст с остальным текстом. Возможно, это не совсем тот эффект, который вы хотели бы видеть в своём реальном веб-приложении, но этот пример хорошо отображает возможности CSS.
BCD tables only load in the browser
Radiobutton и Checkbutton. Переменные Tkinter. Урок 5
В Tkinter от класса Radiobutton создаются радиокнопки, от класса Checkbutton – флажки.
Радиокнопки не создают по одной, а делают связанную группу, работающую по принципу переключателей. Когда включена одна, другие выключены.
Экземпляры Checkbutton также могут быть визуально оформлены в группу, но каждый флажок независим от остальных. Каждый может быть в состоянии «установлен» или «снят», независимо от состояний других флажков. Другими словами, в группе Checkbutton можно сделать множественный выбор, в группе Radiobutton – нет.
Radiobutton – радиокнопка
Если мы создадим две радиокнопки без соответствующих настроек, то обе они будут включены и выключить их будет невозможно:
Эти переключатели никак не связаны друг с другом. Кроме того для них не указано исходное значение, должны ли они быть в состоянии «вкл» или «выкл». По-умолчанию они включены.
Связь устанавливается через общую переменную, разные значения которой соответствуют включению разных радиокнопок группы. У всех кнопок одной группы свойство variable устанавливается в одно и то же значение – связанную с группой переменную. А свойству value присваиваются разные значения этой переменной.
В Tkinter нельзя использовать любую переменную для хранения состояний виджетов. Для этих целей предусмотрены специальные классы-переменные пакета tkinter – BooleanVar, IntVar, DoubleVar, StringVar. Первый класс позволяет принимать своим экземплярам только булевы значения (0 или 1 и True или False), второй – целые, третий – дробные, четвертый – строковые.
Здесь переменной r_var присваивается объект типа BooleanVar. С помощью метода set он устанавливается в значение 0.
При запуске программы включенной окажется первая радиокнопка, так как значение ее опции value совпадает с текущим значением переменной r_var. Если кликнуть по второй радиокнопке, то она включится, а первая выключится. При этом значение r_var станет равным 1.
В программном коде обычно требуется «снять» данные о том, какая из двух кнопок включена. Делается это с помощью метода get экземпляров переменных Tkinter.
В функции change в зависимости от считанного значения переменной var ход выполнения программы идет по одной из трех веток.
Мы можем избавиться от кнопки «Изменить», связав функцию change или любую другую со свойством command радиокнопок. При этом не обязательно, чтобы радиокнопки, объединенные в одну группу, вызывали одну и ту же функцию.
Здесь метка будет менять цвет при клике по радиокнопкам.
Если посмотреть на пример выше, можно заметить, что код радиокнопок почти идентичный, как и код связанных с ними функций. В таких случаях более грамотно поместить однотипный код в класс.
В двух последних вариациях кода мы не используем метод get, чтобы получить значение переменной var. В данном случае нам это не требуется, потому что цвет метки меняется в момент клика по соответствующей радиокнопке и не находится в зависимости от значения переменной. Несмотря на это использовать переменную в настройках радиокнопок необходимо, так как она обеспечивает связывание их в единую группу и выключение одной при включении другой.
Checkbutton – флажок
Флажки не требуют установки между собой связи, поэтому может возникнуть вопрос, а нужны ли тут переменные Tkinter? Они нужны, чтобы снимать сведения о состоянии флажков. По значению связанной с Checkbutton переменной можно определить, установлен флажок или снят, что в свою очередь повлияет на ход выполнения программы.
У каждого флажка должна быть своя переменная Tkinter. Иначе при включении одного флажка, другой будет выключаться, так как значение общей tkinter-переменной изменится и не будет равно значению опции onvalue первого флажка.
С помощью опции onvalue устанавливается значение, которое принимает связанная переменная при включенном флажке. С помощью свойства offvalue – при выключенном. В данном случае оба флажка при запуске программы будут выключены, так как методом set были установлены отличные от onvalue значения.
Опцию offvalue можно не указывать. Однако при ее наличии можно отследить, выключался ли флажок.
С помощью методов select и deselect флажков можно их программно включать и выключать. То же самое относится к радиокнопкам.
from tkinter import *
class CheckButton:
def __init__(self, master, title):
self.var = BooleanVar()
self.var.set(0)
self.title = title
self.cb = Checkbutton(
master, text=title, variable=self.var,
onvalue=1, offvalue=0)
self.cb.pack(side=LEFT)
def ch_on():
for ch in checks:
ch.cb.select()
def ch_off():
for ch in checks:
ch.cb.deselect()
root = Tk()
f1 = Frame()
f1.pack(padx=10, pady=10)
checks = []
for i in range(10):
checks.append(CheckButton(f1, i))
f2 = Frame()
f2.pack()
button_on = Button(f2, text="Все ВКЛ",
command=ch_on)
button_on.pack(side=LEFT)
button_off = Button(f2, text="Все ВЫКЛ",
command=ch_off)
button_off.pack(side=LEFT)
root.mainloop()
Практическая работа
Виджеты Radiobatton и Checkbutton поддерживают большинство свойств оформления внешнего вида, которые есть у других элементов графического интерфейса. При этом у Radiobutton есть особое свойство indicatoron. По-умолчанию он равен единице, в этом случае радиокнопка выглядит как нормальная радиокнопка. Однако если присвоить этой опции ноль, то виджет Radiobutton становится похожим на обычную кнопку по внешнему виду. Но не по смыслу.
Напишите программу, в которой имеется несколько объединенных в группу радиокнопок, индикатор которых выключен (indicatoron=0). Если какая-нибудь кнопка включается, то в метке должна отображаться соответствующая ей информация. Обычных кнопок в окне быть не должно.
Помните, что свойство command есть не только у виджетов класса Button.
Курс с примерами решений практических работ:
android-приложение,
pdf-версия.
RadioButton: Компонент
RadioButton: Компонент
Иерархия наследования
IComponent
IControl
IRadioButton
RadioButton
Описание
Компонент RadioButton используется,
как правило, вместе с другими переключателями для выбора одной из взаимоисключаемых
альтернатив.
Работа с компонентом
Из переключателей, объединенных в группу (достигается путем использования
таких компонентов, как GroupBox, Panel
и других), может быть выбран только один. При включении одного из таких
переключателей, остальные автоматически освобождаются. Переключатели,
размещенные непосредственно на форме, также объединяются в группу.
Свойство Text компонента содержит
надпись, расположенную около переключателя (место расположения надписи
определяется свойством Alignment).
Как и в других компонентах (Button,
CheckBox)
надпись может содержать символ амперсанта «&», вызывающий подчеркивание
следующего после него символа, соответствующего горячей клавише доступа.
Главное свойство компонента Checked
определяет, выбран данный переключатель пользователем или нет. Поскольку
часто необходимо чтобы один из переключателей группы был выбран по умолчанию,
то его свойству Checked
необходимо установить значение True
на стадии разработки формы.
Пример
Свойства компонента RadioButton
Имя свойства
Краткое описание
Align
Свойство Align определяет,
как поведет себя компонент при изменении размеров содержащего
его родительского компонента.
Alignment
Свойство Alignment
определяет расположение переключателя внутри поля компонента.
AllowDrag
Свойство AllowDrag
определяет возможность взять у компонента перетаскиваемый объект.
AllowDrop
Свойство AllowDrop
определяет, будет ли возможность у компонента принять перетаскиваемый
объект.
Anchors
Свойство Anchors возвращает
настройки, определяющие в процентном соотношении изменение размеров
текущего компонента при изменении размеров родительского компонента.
Brush
Свойство Brush определяет
кисть, используемую для заливки области компонента.
Checked
Свойство Checked определяет
состояние переключателя.
ClientHeight
Свойство ClientHeight
используется для получения или задания высоты клиентской области
компонента.
ClientWidth
Свойство ClientWidth
используется для получения или задания ширины клиентской области
компонента.
Color
Свойство Color определяет
цвет фона компонента.
ComponentCount
Свойство ComponentCount
возвращает количество дочерних компонентов.
Свойство ShowHint включает
и выключает показ всплывающего окна подсказки для компонента.
TabOrder
Свойство TabOrder определяет
позицию компонента в последовательности табуляции.
TabStop
Свойство TabStop определяет
признак необходимости компоненту получать фокус при нажатии кнопки
«TAB».
Tag
Свойство Tag не используется
компилятором. Пользователь может изменить значение свойства Tag и использовать его по своему
усмотрению.
Text
Свойство Text определяет
строку, идентифицирующую компонент для пользователя.
Top
Свойство Top определяет
координату верхнего края компонента.
Visible
Свойство Visible определяет
видимость компонента во время выполнения.
Width
Свойство Width определяет
ширину компонента.
Методы компонента RadioButton
События компонента RadioButton
Имя события
Краткое описание
OnBeginDrag
Событие OnBeginDrag
для компонента наступает, когда пользователь начинает перетаскивать
объект от компонента.
OnChange
Событие OnChange наступает
при изменении состояния отметки компонента.
OnClick
Событие OnClick наступает,
если пользователь осуществил щелчок основной кнопкой мыши в области
компонента.
OnDblClick
Событие OnDblClick
наступает, если пользователь осуществил двойной щелчок кнопкой
мыши в области компонента.
OnDragDrop
Событие OnDragDrop
для компонента наступает, когда пользователь отпускает над ним
перетаскиваемый объект.
OnDragEnter
Событие OnDragEnter
наступает, когда перетаскиваемый объект входит в границы данного
компонента.
OnDragLeave
Событие OnDragLeave
наступает, когда перетаскиваемый объект выходит за границы данного
компонента.
OnDragOver
Событие OnDragOver
для компонента наступает, когда пользователь протаскивает над
ним перетаскиваемый объект.
OnEnter
Событие OnEnter наступает
в момент получения фокуса компонентом.
OnExit
Событие OnExit наступает
в момент потери фокуса компонентом.
OnHScroll
Событие OnHScroll наступает
при изменении положения ползунка горизонтальной полосы прокрутки.
OnKeyDown
Событие OnKeyDown наступает,
если компонент находится в фокусе и производится нажатие клавиши
на клавиатуре.
OnKeyPress
Событие OnKeyPress
наступает, если компонент находится в фокусе, при нажатии пользователем
символьной клавиши.
OnKeyPreview
Событие OnKeyPreview
наступает перед каждым событием, связанным с нажатием клавиш.
OnKeyUp
Событие OnKeyUp наступает,
если компонент находится в фокусе, при отпускании пользователем
любой, ранее нажатой клавиши.
OnMouseDown
Событие OnMouseDown
наступает, если указатель находится в области компонента и была
нажата любая кнопка мыши.
OnMouseEnter
Событие OnMouseEnter
наступает в момент входа курсора мыши в область компонента.
OnMouseHover
Событие OnMouseHover
наступает при задержке курсора мыши в области компонента.
OnMouseLeave
Событие OnMouseLeave
наступает в момент выхода курсора мыши за пределы области компонента.
OnMouseMove
Событие OnMouseMove
наступает при перемещении курсора мыши над компонентом.
OnMouseUp
Событие OnMouseUp наступает
при отпускании кнопки мыши, когда указатель находится в области
компонента.
OnMouseWheel
Событие OnMouseWheel
наступает, если компонент находится в фокусе при вращении колеса
мыши.
OnVScroll
Событие OnVScroll наступает
при изменении положения ползунка вертикальной полосы прокрутки.
См. также:
Стандартные компоненты
100 компонентов Delphi — RadioGroup, RadioButton и GroupBox
100 компонентов Delphi — RadioGroup, RadioButton и GroupBox
5.4 Группы радиокнопок — компоненты RadioGroup, RadioButton и GroupBox
Радиокнопки образуют группы взаимосвязанных индикаторов, из которых обычно может быть выбран только один. Они используются для выбора пользователем одной из нескольких взаимоисключающих альтернатив, например, отдела, в котором работает сотрудник, или пола сотрудника. Впрочем, радиокнопки могут использоваться и для отображения аналогичных данных. В этом случае управление кнопками осуществляется программно. Несколько примеров организации размещения радиокнопок вы можете увидеть на рис. 5.1 в разделе 5.1.
Начнем рассмотрение радиокнопок с компонента RadioGroup — панели группы радиокнопок. Это панель, которая может содержать регулярно расположенные столбцами и строками радиокнопки. Надпись в левом верхнем углу панели (см. рис. 5.1) определяется свойством Caption. А надписи кнопок и их количество определяются свойством Items, имеющим тип TStrings. Щелкнув на кнопке с многоточием около этого свойства в окне Инспектора Объектов, вы попадете в редактор списков строк, который уже рассматривался нами в разделе 3.3.4 (рис. 3.9). В нем вы можете занести надписи, которые хотите видеть около кнопок, по одной в строке. Сколько строчек вы запишете — столько и будет кнопок. Например, для компонента RadioGroup в верхней правой части формы рис. 5.1 свойство Items имеет вид:
бухгалтерия
администрация
цех 1
цех 2
цех 3
цех 4
Кнопки, появившиеся в панели после задания значений Items, можно разместить в несколько столбцов (не более 17), задав свойство Columns. По умолчанию Columns = 1, т.е. кнопки размещаются друг под другом.
Определить, какую из кнопок выбрал пользователь, можно по свойству ItemIndex, которое показывает индекс выбранной кнопки. Индексы, как всегда в Delphi, начинаются с 0. По умолчанию ItemIndex = -1, что означает отсутствие выбранной кнопки. Если вы хотите, чтобы в момент начала выполнения приложения какая-то из кнопок была выбрана (это практически всегда необходимо), то надо установить соответствующее значение ItemIndex во время проектирования. Если вы используете радиокнопки не для ввода, а для отображения данных, устанавливать значение ItemIndex можно программно во время выполнения приложения.
Компонент RadioGroup очень удобен, но не свободен от некоторых недостатков. Его хорошо использовать, если надписи кнопок имеют примерно одинаковую длину и если число кнопок в каждом столбце (при размещении их в нескольких столбцах) одинаково. Посмотрите, например, рис. 5.1 из раздела 5. 1. Группа радиокнопок в нижнем левом углу формы имеет нормальный вид. А группа аналогичных радиокнопок в верхней правой части формы выглядит плохо: она занимает слишком много места, которое пропадает в пустую. Связано это с тем, что длина надписей у кнопок первого столбца превышает длину надписей у остальных кнопок. A RadioGroup при размещении кнопок ориентируется на надпись максимальной длины. Еще хуже выглядела бы эта группа, если бы число кнопок было, например, равно 5.
В подобных случаях желательно нерегулярное расположение кнопок. Такую возможность дают компоненты RadioButton, сгруппированные панелью GroupBox. Панель GroupBox выглядит на форме так же, как RadioGroup (см. рис. 5.1), и надпись в ее верхнем левом углу также определяется свойством Caption. Эта панель сама по себе пустая. Ее назначение — служить контейнером для других управляющих элементов, в частности, для радиокнопок RadioButton. Отдельная радиокнопка RadioButton особого смысла не имеет, хотя и может служить индикатором, включаемым и выключаемым пользователем. Но в качестве индикаторов обычно используются другие компоненты — CheckBox. А радиокнопки имеют смысл, когда они взаимодействуют друг с другом в группе. Эта группа и объединяется единым контейнером, обычно панелью GroupBox.
Рассмотрим свойства радиокнопки RadioButton. Свойство Caption содержит надпись, появляющуюся около кнопки. Значение свойства Alignment определяет, с какой стороны от кнопки появится надпись: taLeftJustify — слева, taRightJustify — справа (это значение принято по умолчанию). Свойство Checked определяет, выбрана ли данная кнопка пользователем, или нет. Поскольку в начале выполнения приложения обычно надо, чтобы одна из кнопок группы была выбрана по умолчанию, ее свойство Checked надо установить в true в процессе проектирования. Если вы поэкспериментируете, то заметите, что и во время проектирования можно установить в true значение Checked только у одной кнопки из группы.
Размещение кнопок RadioButton в панели GroupBox, как можно видеть из рис. 5.1 раздела 5.1, дает большую свободу по сравнению с компонентом RadioGroup и позволяет разместить кнопки не регулярно.
Радиокнопки RadioButton могут размещаться не только в панели GroupBox, но и в любой панели другого типа, а также непосредственно на форме. Группа взаимосвязанных кнопок в этих случаях определяется тем оконным компонентом, который содержит кнопки. В частности, для радиокнопок, размещенных непосредственно на форме, контейнером является сама форма. Таким образом, все кнопки, размещенных непосредственно на форме, работают как единая группа, т.е. только в одной из этих кнопок можно установить значение Checked в true.
RADIO BUTTON — Перевод на русский
EnglishClick the «Focus on Conversions» (Conversion Optimizer) radiobutton.
Установите переключатель «Плата за конверсии (Оптимизатор конверсий)».
EnglishChoose the radiobutton which says ‘Text mesage to ********XX.
Установите переключатель «SMS-сообщением на номер: ********XX».
EnglishChoose the radiobutton which says ‘Email to *****@****.com.
Установите переключатель «Отправить на адрес *****@****.com».
EnglishTo set a service area, choose the radiobutton ‘Yes, this business serves customers at their locations in a specific area. ‘
Указав территорию обслуживания, можно сделать свой адрес закрытым.
EnglishIf would prefer not to specify your hours of operation, keep the radiobutton selected next to “I prefer not to specify operating hours.”
Если вы не хотите указывать время работы, выберите вариант «Я не хочу указывать часы работы».
Radio buttons React component — Material-UI
Radio buttons allow the user to select one option from a set.
Use radio buttons when the user needs to see all available options. Если доступные параметры можно свернуть, возможно лучше использовать раскрывающееся меню, так как оно занимает меньше места.
Для радиокнопок наиболее часто используемый параметр должен быть выбран по умолчанию.
RadioGroup
RadioGroup — это полезная обертка, используемая для группировки компонентов Radio, она обеспечивает более простой API и управление с клавиатуры.
To lay out the buttons horizontally, set the row prop: <RadioGroup row />.
Standalone radio buttons
Radio can also be used standalone, without the RadioGroup wrapper.
Расположение метки
You can change the placement of the label with the FormControlLabel component’s labelPlacement prop:
Отображение ошибок
In general, radio buttons should have a value selected by default. If this is not the case, you can display an error if no value is selected when the form is submitted:
Customized radios
Ниже находится пример кастомизации компонента. You can learn more about this in the overrides documentation page.
Все элементы формы должны иметь метки, в том числе радиокнопки, переключатели и чекбоксы. В большинстве случаев это делается с помощью элемента <label> (FormControlLabel).
Когда метка не может быть использована, необходимо добавить атрибут непосредственно на поле ввода. В этом случае можно применить дополнительный атрибут (например, aria-label, aria-labelledby, title) через свойство inputProps.
<RadioButton
value="radioA"
inputProps={{ 'aria-label': 'Radio A' }}
/>
radio-button — Включение / отключение ввода текста в IntCtrl при щелчке RadioButton в wxPython
У меня есть простой графический интерфейс с двумя переключателями и IntCtrl для ввода текста. Первоначально у меня выбран верхний переключатель и отключен IntCtrl (к сожалению, я не могу понять, как установить его на пустой или «серый»):
Я хочу «включить» область IntCtrl в методе onClick, но не могу понять, как это сделать. SetStyle (), похоже, не имеет опции очистки стиля wx.TE_READONLY, и я бы предпочел не воссоздавать IntCtrl полностью, потому что тогда перестановка всего в классификаторе раздражает. Если есть какой-то способ сделать это с помощью TextCtrl, я был бы счастлив переключиться на него и просто выполнить фильтрацию символов вручную, но я также не смог понять, как включить / отключить их.
Радиокнопка — это один из типов индикатора выбора в списке опций. Если выбран вариант, круг закрашен. Если опция не выбрана, кружок будет пустым. Когда выбран один кружок, остальные не выделяются, так что в любой момент можно выбрать только один вариант.
Пример радиокнопки
Ниже приведен пример того, как выглядит переключатель в вашем браузере.
Как создать переключатель на моей веб-странице HTML
Чтобы создать переключатель на веб-странице, используйте тег , как показано ниже. В приведенном ниже примере мы используем код из примера с переключателем, чтобы создать переключатель, за которым следует текст «Пример 1».
Пример 1
Если вы хотите, чтобы пользователь вводил данные с переключателя, он должен быть включен в тег
Здесь вы видите три радиокнопки, каждая с именем , установленным на , контакт и каждая с уникальным значением , которое однозначно идентифицирует эту индивидуальную радиокнопку в группе.Каждый из них также имеет уникальный идентификатор id , который используется атрибутом для элемента для связывания меток с переключателями.
Вы можете попробовать этот пример здесь:
Представление данных радиогруппы
Когда вышеуказанная форма отправляется с выбранной радиокнопкой, данные формы включают запись в форме contact = value . Например, если пользователь нажимает кнопку с зависимой фиксацией «Телефон», а затем отправляет форму, данные формы будут включать строку contact = phone .
Если вы опустите атрибут value в HTML, отправленные данные формы присваивают группе значение на . В этом сценарии, если пользователь щелкнет опцию «Телефон» и отправит форму, в результате будут получены данные формы: contact = on , что бесполезно. Так что не забудьте установить значение атрибутов!
Примечание : Если при отправке формы не выбран переключатель, радиогруппа вообще не включается в отправленные данные формы, поскольку нет значения для отчета.
На самом деле довольно редко хочется разрешить отправку формы без каких-либо переключателей в выбранной группе, поэтому обычно разумно установить одно значение по умолчанию для состояния проверено . См. Раздел Выбор переключателя по умолчанию ниже.
Давайте добавим немного кода в наш пример, чтобы мы могли исследовать данные, генерируемые этой формой. В HTML добавлен блок
для вывода данных формы в:
<форма>
Выберите предпочтительный способ связи:
Затем мы добавляем некоторый JavaScript для настройки прослушивателя событий для события submit , которое отправляется, когда пользователь нажимает кнопку «Отправить»:
var form = document.querySelector ("форма");
var log = document.querySelector ("# журнал");
form.addEventListener ("отправить", функция (событие) {
var data = new FormData (форма);
var output = "";
for (постоянный ввод данных) {
вывод = вывод + запись [0] + "=" + запись [1] + "\ r";
};
log.innerText = вывод;
event.preventDefault ();
}, ложный);
Попробуйте этот пример и убедитесь, что для группы контактов всегда бывает не более одного результата.
В дополнение к общим атрибутам, общим для всех элементов , входы radio поддерживают следующие атрибуты:
Атрибут
Описание
проверено
Логическое значение, указывающее, является ли этот переключатель выбранным по умолчанию элементом в группе
значение
Строка для использования в качестве значения радио при отправке формы, если радио в настоящее время переключено на
проверено
Логический атрибут, который, если он присутствует, указывает, что этот переключатель является выбранным по умолчанию в группе.
В отличие от других браузеров, Firefox по умолчанию сохраняет состояние динамической проверки при загрузке страницы. Используйте атрибут автозаполнения для управления этой функцией.
value
Атрибут value - это атрибут, который используется всеми s; однако он служит специальной цели для входных данных типа radio : при отправке формы на сервер отправляются только переключатели, которые в данный момент проверены, а сообщаемое значение является значением атрибута value .Если значение не указано иначе, по умолчанию это строка на . Это показано в разделе «Значение» выше.
Мы уже рассмотрели основы переключателей выше. Давайте теперь посмотрим на другие распространенные функции и методы, связанные с переключателями, о которых вам, возможно, потребуется знать.
Выбор радиокнопки по умолчанию
Чтобы сделать радиокнопку выбранной по умолчанию, вы включаете проверенный атрибут , как показано в этой измененной версии предыдущего примера:
<форма>
Выберите предпочтительный способ связи:
В этом случае по умолчанию выбрана первая радиокнопка.
Примечание : Если вы поместите атрибут checked более чем на одну радиокнопку, более поздние экземпляры переопределят более ранние; то есть последний проверен радиокнопка будет той, которая выбрана. Это связано с тем, что одновременно можно выбрать только один переключатель в группе, и пользовательский агент автоматически отменяет выбор других каждый раз, когда новый переключатель помечается как отмеченный.
Обеспечение большей области действия для ваших переключателей
В приведенных выше примерах вы могли заметить, что вы можете выбрать переключатель, щелкнув связанный с ним элемент , а также сам переключатель.Это действительно полезная функция меток HTML-форм, которая упрощает пользователям выбор нужного параметра, особенно на устройствах с маленьким экраном, таких как смартфоны.
Помимо доступности, это еще одна веская причина для правильной настройки элементов в ваших формах.
Радиокнопки не участвуют в проверке ограничений; у них нет реальной ценности, которую нужно ограничивать.
В следующем примере показана немного более полная версия примера, который мы видели на протяжении всей статьи, с некоторыми дополнительными стилями и с улучшенной семантикой, установленной за счет использования специализированных элементов.HTML выглядит так:
<форма>
Здесь особо нечего отметить, за исключением добавления элементов