Тег <select>(от англ. select — выбрать) позволяет создать элемент интерфейса в виде раскрывающегося списка, а также список с одним или множественным выбором.
Конечный вид зависит от использования атрибута size, который устанавливает высоту списка. Ширина списка определяется самым широким текстом, указанным в элементе <option>, а также может изменяться с помощью стилей. Каждый пункт создаётся с помощью элемента <option>, который должен быть вложен в контейнер <select>. Если планируется отправлять данные списка на сервер, то требуется поместить <select> внутрь формы. Это также необходимо, когда к данным списка идёт обращение через скрипты.
Устанавливает, что список получает фокус после загрузки страницы.
disabled
Блокирует доступ и изменение элемента.
form
Связывает список с формой.
multiple
Позволяет одновременно выбирать сразу несколько элементов списка.
name
Имя элемента для отправки на сервер или обращения через скрипты.
required
Список обязателен для выбора перед отправкой формы.
size
Количество отображаемых строк списка.
Также для этого элемента доступны универсальные атрибуты.
autofocus
Атрибут autofocus устанавливает, что список получает фокус после загрузки страницы, при этом список становится доступным для выбора пунктов, например, с помощью клавиатуры.
Синтаксис
<select autofocus>
...
</select>
Значения
Нет.
Значение по умолчанию
По умолчанию этот атрибут выключен.
disabled
Блокирует доступ и изменение элементов списка. Блокированный список не может получить фокус через курсор или клавиатуру, быть изменён, значение такого списка не передаётся на сервер.
Синтаксис
<select disabled>
...
</select>
Значения
Нет.
Значение по умолчанию
По умолчанию этот атрибут выключен.
form
Связывает список с формой по её идентификатору. Такая связь необходима в случае, когда список располагается за пределами <form>
.
Синтаксис
<select form="<идентификатор>">
...
</select>
Значения
Идентификатор формы (значение атрибута id элемента <form>).
Значение по умолчанию
Нет.
multiple
Наличие атрибута multiple сообщает браузеру отображать содержимое элемента <select> как список множественного выбора. Конечный вид списка зависит от используемого атрибута size и браузера.
Для выбора нескольких значений списка применяются клавиши Ctrl и Shift совместно с курсором мыши.
Чтобы на сервер отправлялся массив данных, значение атрибута name следует писать с квадратными скобками — hero[], к примеру.
Синтаксис
<select multiple>
...
</select>
Значения
Нет.
Значение по умолчанию
По умолчанию этот атрибут выключен.
name
Определяет уникальное имя элемента <select>. Как правило, это имя используется для доступа к данным через скрипты или для получения выбранного значения списка на сервере.
Синтаксис
<select name="<имя>">
...
</select>
Значения
В качестве имени используется набор символов, включая числа и буквы. JavaScript чувствителен к регистру, поэтому при обращении к элементу <select> по имени соблюдайте ту же форму написания, что и в атрибуте name.
Значение по умолчанию
Нет.
required
Устанавливает список обязательным для выбора перед отправкой формы на сервер. Если пункт списка не выбран, браузер выведет сообщение, а форма отправлена не будет. Вид и содержание сообщения зависит от браузера и меняться пользователем не может.
Синтаксис
<select required>
...
</select>
Значения
Нет.
Значение по умолчанию
По умолчанию атрибут required выключен.
size
Устанавливает высоту списка. Если значение атрибута size равно 1, то список превращается в раскрывающийся. При добавлении атрибута multiple к элементу <select> при size="1" список отображается как «крутилка». Во всех остальных случаях получается список с одним или множественным выбором.
Синтаксис
<select size="<число>">
.
..
</select>
Значения
Любое целое положительное число.
Значение по умолчанию
Зависит от атрибута multiple. Если он присутствует, то размер списка равен количеству элементов. Когда атрибута multiple нет, то по умолчанию значение атрибута size равно 1.
Значения ARIA role
<select> (без атрибута multiple и без атрибута size со значением больше 1) — role=combobox
<select> (с атрибутом
multiple или с атрибутом size со значением больше 1) — role=listbox
Html формы для сайта — теги Form, Input и Select, Option, Textarea, Label и другие для создания элементов вебформ
Обновлено 23 января 2021 Просмотров: 162 142 Автор: Дмитрий Петров
Приветствую вас, уважаемые читатели блога KtoNaNovenkogo.ru. Сегодня я хочу поговорить о такой неотъемлемой составляющей верстки любого сайта, как HTML формы. Какой бы не был движок вашего сайта (cms), на нем обязательно будут в том или ином виде использоваться формы, созданные с помощью тегов Form и Input, а так же атрибутов и параметров Button, Checked, Value, Checkbox, Radio, Checkbox, Submit.
Ну, и еще можно добавить к этому элементы для создания выпадающих списков и текстовых полей — Select, Option, Textarea, Label, Fieldset, Legend.
Зачем нужны и как работают формы на современных сайтах
Та же строка поиска по сайту (здесь описан поиск от яндекса) создается с использованием этих тэгов, а поиск то на вашем проекте будет обязательно. Поэтому понимание того, как они устроены и работают, вам совсем не помешает для успешной работы над дизайном, да и при самостоятельной раскрутке и продвижении будет не лишним.
Так, с обоснованием необходимости изучения этих элементов, думаю, вопросов больше не должно возникнуть, поэтому самое время переходить непосредственно к изучению их возможных вариантов.
Да, хочу еще напомнить, что мы уже успели рассмотреть много материалов на тему языка гипертекстовой разметки, например, узнали принципы формирования цветов в Html, трех видов списков на тегах ul, ol, li, dl) и принципы создания таблиц на тегах Tr, Th, Td, Table.
По своей сути формы состоят из элементов, для создания которых внутри основного контейнера из тегов Form вставляют различные тэги — Checked, Value, Checkbox, Radio, Checkbox, Submit и др. Нам лишь нужно будет расположить ее код в любом удобном для этого месте шаблона сайта, указав с помощью тегов и их атрибутов, как она должна будет выглядеть.
Это может быть текстовое поле с кнопкой отправки введенного запроса, варианты выбора с радиокнопками (когда можно оставить нажатой только одну из предоставляемых кнопок), несколько текстовых полей с кнопкой для отправки (обратная связь описанная тут) и многое другое.
Например, в случае «поиска», с помощью атрибута Value можно задать, что именно будет написано на кнопке расположенной рядом с полем для ввода запроса. Данные вводимые в формах должны быть в дальнейшем каким-то образом обработаны.
Например, в случае обратной связи пользователь, после того как заполнит поле со своим именем, введет свой E-mail и текст сообщения, а затем нажмет на кнопку отправки, будет вправе надеяться на отправку данных из формы на E-mail автора сайта. Но реализовать такое с помощью только одного языка гипертекстовой разметки (здесь читайте что такое Html, теги и валидатор W3C), к сожалению, не возможно.
Для этих целей потребуется специальная программа обработчик, которая после нажатия пользователем на кнопку отправки возьмет все данные из полей обратной связи и отправит их на E-mail владельцу ресурса. Какая именно программа будет это делать, вы должны указать сами с помощью атрибута Action.
Обычно программа обработки представляет из себя скрипт, написанный на языке PHP. Поэтому в атрибуте Action тэга Form вы должны будете прописать путь к файлу этого скрипта, лежащего на сервере вашего хостинга. Приведу в качестве примера подписку на RSS ленту моего блога посредством E-mail:
Немного непонятно, наверное, кажется по началу, но, думаю, что все прояснится по мере дальнейшего рассказа.
Теги Form и Input для создания кнопок, чекбоксов и радиокнопок
Любая форма должна быть заключена в открывающий и закрывающий тэги Form. Это своеобразный контейнер для их создания. У этого тега имеется ряд обязательных и необязательных атрибутов:
Name – уникальное имя, которое нужно указывать, если в Html файле, где вы что-то делаете, будет использоваться несколько вебформ
Action – обязательный атрибут указывающий путь к скрипту, которому будут переданы данные из нее для дальнейшей обработки
Method – с помощью него вы можете изменить метод передачи данных из этой вебформы скрипту файла обработчика. Если вы его не укажете, то по умолчанию будет использоваться метод Get, который, собственно говоря, предназначен в основном для переменных и коротких сообщений, и к тому же открытым способом передавая данные через адресную строку браузера. Для передачи данных форм скрипту обработчика все же лучше использовать метод POST, предназначенный специально для передачи текстовых сообщений закрытым способом
Рассмотрим остальные тэги, позволяющие создавать разнообразные вебформы. Самый универсальный – это Input. Внутри него обязательно прописывают атрибут Type, который определяет, что именно будет из себя представлять HTML форма, созданная с помощью этого тэга.
C помощью Input и Type можно создавать следующие элементы:
однострочные текстовые поля (Type=»Text»)
поля для ввода пароля (Type=»Password»)
чекбоксы (Type=»Checkbox»)
радиокнопки (Type=»Radio»)
скрытые поля (Type=»Hidden»)
обычные кнопки (Type=»Button»)
кнопки для отправки данных в обработчик (Type=»Submit»)
кнопки для приведения вебформы к исходному состоянию (Type=»Reset»)
поля для загрузки файлов на сервер (Type=»File)
кнопки с изображением (Type=»Image»)
Input не имеет закрывающего тега. Что именно будет представлять из себя вебформа, созданная с помощью него, целиком и полностью зависит от параметра указанного в атрибуте Type. Если Type не указан, то по умолчанию будет создано текстовое поле.
Примеры форм, созданных на Input с различными значениями для Type
TEXT
Обычное текстовое поле для ввода символов с клавиатуры
<input type="text" name="ktonanovenkogoru">
PASSWORD
Текстовое поле, в котором вводимые символы закрываются звездочками
Скрытое поле, которое не отображается, но в файл обработчика данные передаются.
<input type="hidden" name="ktonanovenkogoru">
RESET
Кнопка для возвращение данных в первоначальное значение (сброса).
<input type="reset" name="ktonanovenkogoruru">
Другие атрибуты тэга Input и примеры их использования
Рассмотрим, для чего нужны остальные атрибуты:
Name – в случае, если данные должны быть отправлены в скрипт программы обработчика, то вы должны обязательно указать параметр для атрибута Name. Под этим именем данные, отправленные из формы, будут фигурировать в программе обработчика информации.
Size — с помощью него задается размер поля создаваемой вебформы. Значение указывается в количестве символов, которое сможет поместиться в данном поле. Если Size не указан, то ширина будет принята по умолчанию равной 24 символам
Maxlength — по умолчанию количество символов, которое можно будет ввести в Html форму, не ограничено, но с помощью Maxlength можно задать это ограничение. Больше символов, чем в нем будет указано, вам ввести в поле не удастся
Value — с помощью него можно задать, что именно будет написано по умолчанию в поле или же на кнопке отправки данных
Checked — это атрибут-флаг, который можно вставить в Input для радиокнопок (radio) или же для чекбоксов (checkbox). В этом случае данная радиокнопка или чекбокс будут активными при загрузке страницы с вебформой (в них уже будет стоять галочка)
Теперь давайте рассмотрим все примеры формы с Input. Внешний вид текстового поля похож на вид поля для ввода пароля, поэтому рассмотрим только вариант создания Text, например, для ввода адреса электронной почты:
Введите Ваш E-mail:
Теперь давайте рассмотрим создание вебформы с радиокнопками (Radio):
Обратите внимание, что в этой форме два раза используется тег Input – по разу для создания каждой из двух радиокнопок. Причем, в каждом из них прописан атрибут Name с одинаковым значением (rezultat), а значение Value разное (YES и NO).
Это означает, что при ее обработке, в случае выбора любого из переключателей, будет отправлена переменная, название которой прописано в Name, но значение этой переменной будет зависеть от того, какой именно переключатель был выбран.
Рассмотрим пример создание вебформы с чекбоксами (Checkbox):
Чекбоксы отличаются от радиокнопок возможностью выбрать сразу несколько вариантов. Name служит для определения в файле обработчика, в каком именно чекбоксе проставлены флажки,а Value — задает то значение, которое будет отослано в обработчик (если Value задан не будет, то в обработчик будет отправлен текст, расположенный рядом с данным чекбоксом).
Select, Option, Textarea, Label, Fieldset, Legend — выпадающие списки, текстовые области и другие элементы вебформ
Для начала хочу немного напомнить, что такое, собственно, вебформы и для чего они нужны на страницах сайта. Они в первую очередь призваны в удобном для пользователя виде повторять имеющиеся в любой операционной системе элементы: кнопки, поля для ввода текста, выпадающие списки, флажки, переключатели и тому подобные вещи.
Все пользователи без каких-либо дополнительный объяснений понимают назначение этих элементов и если они видят кнопку Html формы, то понимают, что на нее нужно нажать.
Причем, все составляющие ее элементы (вроде Select, Option, Textarea, Label, Fieldset, Legend) представляют собой уже законченные заготовки (контейнеры), для вставки которых достаточно будет лишь использовать нужный тег с нужными атрибутами и параметрами.
Браузеры сами знают, как отображать тот или иной элемент вебформы. Правда, варианты отображения одного и того же ее элемента в разных браузерах могут немного отличаться друг от друга, но, как правило, не существенно.
Т.о. получается, что вебформы в Html являются попыткой перенести ключевые элементы, используемые в любой операционной системе, на страницы вебсайта. Но для чего они могут понадобиться на страницах сайта?
В принципе, для того же, для чего аналогичные элементы используются в операционных системах — передача данных от пользователя. В случае форм данные от пользователя передаются на сервер, где обрабатываются специальной программой (язык гипертекстовой разметки, к сожалению, не позволяет вести обработку данных).
Хотя, данные можно отправить не только на сервер, но и, например, по электронной почте на адрес, заданный в атрибуте Action тэга Form. При отправке из Html данных на E-mail у пользователя, заполняющего поля, после нажатия им на кнопку отправки данных, запустится почтовая программа используемая на его компьютере по умолчанию.
Открывающий тег Form в таком случае должен выглядеть примерно так:
Все элементы вебформы, которые создают поля с выпадающими списками, формируются одинаковым образом. Сначала задается контейнер поля со списком с помощью открывающего и закрывающего Html тега Select. А затем внутри этого контейнера создаются отдельные контейнеры с пунктами (элементами) этого списка. Это делается с помощью открывающих и закрывающих тэгов Option.
Получается примерно так:
Но это упрощенная конструкция, т.к. у Select и Option имеется ряд атрибутов, которые определяют свойства и внешний вид создаваемого поля с выпадающим списком.
Name — вы должны задать уникальное имя для данного элемента вебформы, создаваемого с помощью Select. Это имя будет передано на сервер в программу обработчик данных в качестве имени для переменной. В качестве значения этой переменной будет передано значение атрибута Value (задается в Option для каждого пункта) того пункта выпадающего списка, который выберет пользователь.
Size — с помощью него можно задать количество отображаемых пунктов. Иначе говоря, с помощь Size можно задать высоту списка, измеряемую в количестве отображаемых строк. Если вы не указываете в явном виде значение Size в теге Select, то будет использоваться значение высоты выпадающего списка по умолчанию, при этом она будет разной в случае отсутствия или присутствия в Select атрибута Multiple:
Если Multiple в Select присутствует, то высота выпадающего списка в вебформе будет по умолчанию равна количеству его элементов. Т.е. будут показаны все элементы выпадающего списка с множественным выбором. См. пример множественного ниже. Если атрибут Size в Select задать меньше количества пунктов, то справа появится полоса прокрутки.
Если Multiple в Select отсутствует, то высота выпадающего списка в вебформе будет по умолчанию равна одной строке. Т.е. видна будет только одна строка, а остальные пункты будут доступны только при нажатии на кнопку лифта (справа). См. пример приведенный ниже
Multiple — приписывание данного атрибута в теге Select позволит вам создать выпадающий список с возможность одновременного выбора нескольких пунктов. Подробнее об этом атрибуте читайте ниже.
Формы с выпадающими списками можно разделить на два варианта. В первом варианте вы сможете выбрать только один элемент (строку) поля с выпадающим списком, во втором варианте — удерживая Ctrl или Shift сможете выбрать одновременно несколько из имеющихся пунктов.
При этом во втором варианте будут отправлены на сервер данные о всех выбранных пунктах. Какой именно выпадающий список будет создан, определяется наличием или отсутствием в тэге Select атрибута Multiple.
Multiple указывается в Select без параметра, т.к. пишется просто Multiple и все. Если он присутствует, то будет создана вебформа выпадающего списка с возможностью множественного выбора (удерживая Ctrl или Shift).
Вариант поля с выпадающим списком, в котором будет возможен множественный выбор, будет выглядеть примерно так:
LabelSelectSelectEDKtoNaNovenkogo.ruLegend
Справа приведен пример вебформы выпадающего списка со множественным выбором, который создан на основе кода, приведенного выше. Как вы видите, удерживая Ctrl или Shift можно выделить несколько пунктов одновременно.
Если в тэге Select атрибута Multiple не будет, то выбрать можно будет только один элемент этого выпадающего списка (строку).
Пример, в котором можно выбрать только один пункт, вы можете видеть здесь:
LabelSelectSelectEDKtoNaNovenkogo. ruLegend
Атрибуты тега Option
SelectED — он определяет, какой пункт выпадающего списка будет выделен. Т.е. будет отображаться с одним видимым пунктом. В случае же списка с множественным выбором (если в Select присутствует атрибут Multiple) можно будет с помощью указания SelectED в Html теге Option выделить сразу несколько пунктов.
Value — на сервер из вебформы поля выпадающего списка будет отправлена пара значений — имя для переменной и значение этой переменной. Так вот, имя для переменной берется из атрибута Name тэга Select, а значение этой переменной будет взято из Value тега Option, но только того пункта (или пунктов, в случае множественного выбором), который выбрал пользователь перед тем, как нажать кнопку отправки данных.
SelectLabelSelectEDKtoNaNovenkogo.ruLegend
В создаваемый выпадающий список (с помощью Select и Option) можно добавить что-то вроде разделителей с заголовком групп, которые будут отличаться от остальных пунктов меню по начертанию шрифта.
Для создания группы из пунктов выпадающего списка нужно заключить их в открывающий и закрывающий теги формы Optgroup, а в открывающем тэге Optgroup прописать атрибут Label, в качестве параметра которого нужно будет ввести желаемое название группы.
Например так:
LabelSelectSelectEDKtoNaNovenkogo.ruLegend
Textarea — создание текстового поля в форме
Остался еще один элемент вебформ, который мы не рассмотрели — Textarea (поле с возможностью ввода многострочного текста). Создается оно с помощью парного Html тега Textarea. Причем, в нем можно переносить текст на новую строку и он будет передаваться на сервер с учетом сделанных переносов.
Итак, для создания многострочного текстового поля нужно прописать открывающий и закрывающий Textarea, а между ними вы можете добавить текст, который будет виден при загрузке страницы с вебформой. Пользователь потом сможет стереть этот текст и написать свой.
<form> <textarea rows=»3″ cols=»15″ name=»textt»>Что вы можете сообщить о себе?</textarea> </form>
Что вы можете сообщить о себе?
Вместе с Textarea можно использовать следующие атрибуты:
Name — вы задаете имя для этого элемента вебформы. Оно будет передано на сервер в программу обработчика данных
Cols — вы можете задать с помощью него ширину создаваемого многострочного поля в символах.
Rows — задаем высоту создаваемого многострочного поля (в строках). Если строк у текста, вводимого пользователем, окажется больше, чем высота многострочного поля для текста, то справа от поля в вебформе появится полоса прокрутки.
Readonly — запрет пользователям на изменение или добавление своего текста в это поле (только для чтения).
Disabled — пользователь, так же как в случае с атрибутом Readonly, не сможет изменить содержимое текстового поля в вебформе, но оно изменит свой цвет на серый, обозначающий его неактивность.
Label — для чего нужен этот Html тэг в форме
Html тег Label позволяет реализовать одну очень интересную возможность в формах, которая имеется в операционных системах. Там, если вы помните, для того чтобы активировать какой-либо элемент, не обязательно щелкать именно по нему, можно щелкнуть и по названию этого элемента — все равно произойдет его активация.
В вебформах по умолчанию этого не происходит — нужно щелкать именно по самому элементу Html формы для его активации. Например, нужно щелкать по флажку, для того чтобы поставить в нем галочку. Щелчок же по тексту рядом с флажком результата не принесет. Попробуйте сами:
Label Select SelectED
Как вы можете убедиться, по тексту щелкать для активации этого элемента бесполезно — нужно щелкать именно по нему самому. Вот именно такое положение вещей и призван исправить тэг Label. Он позволить сделать текст рядом с элементом веб формы кликабельным, что несомненно улучшит юзабилити.
Но как связать элемент Html формы и текст? Для этого нужно дописать в атрибут ID с уникальным параметром, а текст нужно окружить открывающим и закрывающим тэгами Label. И это еще не все. В открывающем теге Label нужно прописать атрибут For, параметр которого должен быть точно таким же, как и у атрибута ID в Html теге элемента формы. Получается примерно так:
Label Select SelectED
Как вы можете видеть, теперь, благодаря использованию Label, элементы вебформы можно активировать не только щелчком по нему самому, но и щелчком по тексту, расположенному рядом.
Fieldset и Legend — разбиваем форму на части
Вы, наверное, часто видели, что большие формы в Html бывают разбиты на группы (Fieldset), которые обведены в рамочку и у каждой такой группы имеется свой заголовок (Legend). Реализуется это с помощью всего двух тэгов: Fieldset и Legend. Они парные, т.е. у них должны быть в обязательном порядке открывающий и закрывающий.
Так вот, для создания группы из составных частей вам нужно заключить все эти части в открывающий и закрывающий тэги Fieldset. А для того, чтобы задать для данной группы заголовок (Legend), вам нужно сразу же после открывающего Fieldset прописать конструкцию из открывающего и закрывающего Legend, между которыми необходимо вставить текст заголовка группы.
Вот пример создания групп с помощью Fieldset и Legend:
Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru
Form Select | Components | BootstrapVue
Пользовательский Bootstrap элемент <select> с использованием пользовательских стилей. При необходимости укажите параметры на основе массива, массива объектов или объекта.
Сгенерируйте ваши опции выбора, передав массив или объект в свойства options:
Не стесняйтесь смешивать опцию options с <b-form-select-option> и <b-form-select-option-group>. Параметры и группы параметров, размещенные вручную, появятся под параметрами, созданными с помощью свойства options. Чтобы разместить ручные опции и группы опций выше опций, заданных опцией options, используйте именованный слот first.
<template>
<div>
<b-form-select v-model="selected" :options="options">
<!-- Этот слот появляется над опциями из свойства 'options' -->
<template #first>
<b-form-select-option :value="null" disabled>-- Пожалуйста, выберите опцию --</b-form-select-option>
</template>
<!-- Эти параметры появятся после параметров из свойства 'options' -->
<b-form-select-option value="C">Опция C</b-form-select-option>
<b-form-select-option value="D">Опция D</b-form-select-option>
</b-form-select>
<div>Выбрано: <strong>{{ selected }}</strong></div>
</div>
</template>
<script>
export default {
data() {
return {
selected: null,
options: [
{ value: 'A', text: 'Опция A (из свойства опций)' },
{ value: 'B', text: 'Опция B (из свойства опций)' }
]
}
}
}
</script>
<!-- b-form-select-both. vue -->
Свойство Options
options может быть массивом строк или объектов или объектом значения ключа. Доступные поля:
value Выбранное значение, которое будет установлено на v-model
disabled Отключает элемент для выбора
text Отображать текст или html Отображать базовый инлайновый html
value может быть строкой, числом или простым объектом. Избегайте использования сложных типов в значениях.
Если указаны и html, и text, приоритет будет иметь html. В поле html поддерживается только базовый / собственный HTML (компоненты работать не будут). Обратите внимание, что не все браузеры будут отображать встроенный html (т. е. <i>, <strong> и т. д.). Внутри элементов <option> элемента <select>.
Будьте осторожны при размещении пользовательского контента в поле html, поскольку это может сделать вас уязвимыми для XSS-атаки, если вы сначала не очистите строку, введенную пользователем.
Если value отсутствует, то text будет использоваться как поля value и text. Если вы используете свойство html, вы должны предоставить свойство value.
Новое в версии 2.2.0 Чтобы определить группы опций, просто добавьте объект со свойством label в качестве имени группы и свойством options с массивом опций группы.
Примечание: При использовании формата объекта порядок окончательного массива не гарантирован. По этой причине рекомендуется использовать любой из ранее упомянутых форматов массивов.
Изменение названий полей опций
Если вы хотите настроить имена свойств поля (например, используя поле name для отображения text), вы можете легко изменить их, установив text-field, html-field, value-field и disabled-field прописывает строку, содержащую имя свойства, которое вы хотите использовать:
Если начальное значение вашего выражения v-model не соответствует ни одному из параметров, компонент <b-form-select> (который является встроенным в HTML5 <select>) будет отображаться в не выбранное состояние. В iOS это приведет к тому, что пользователь не сможет выбрать первый элемент, потому что iOS в этом случае не запускает событие изменения. Поэтому рекомендуется в качестве первого варианта указать отключенный параметр с пустым значением.
Вы можете использовать свойство select-size, чтобы переключить пользовательский выбор в список выбора, а не в раскрывающийся список. Установите для свойства select-size числовое значение больше 1, чтобы контролировать количество видимых строк параметров.
Обратите внимание, когда для параметра select-size установлено значение больше 1, пользовательский стиль Bootstrap v4 не будет применяться, если также не установлено свойство multiple.
Обратите внимание, что не все мобильные браузеры отображают выбор в виде списка.
Включите режим множественного выбора, установив свойство multiple, и управляйте количеством строк, отображаемых в списке множественного выбора, установив select-size равным количеству отображаемых строк. По умолчанию браузер использует значение по умолчанию (обычно 4).
Значение в режиме множественного выбора
В режиме multiple, <b-form-select> всегда возвращает массив значений параметров. Вы должны предоставить ссылку на массив в качестве v-model в режиме multiple.
Установите размер текста элемента управления формой, используя свойство size равное sm или lg для малых или больших соответственно.
По умолчанию <b-form-select> будет занимать всю ширину контейнера, в котором он появляется. Чтобы контролировать ширину выбора, поместите ввод внутри стандартного столбца сетки Bootstrap.
Автофокус
Когда свойство autofocus установлено на <b-form-select>, выделение будет автоматически сфокусировано, когда оно вставлено (т.е. mounted) в документ или повторно активировано, когда оно находится внутри компонента Vue <keep-alive>. Обратите внимание, что эта опция не устанавливает атрибут autofocus для выбора и не может сказать, когда выбор становится видимым.
Контекстные состояния
Bootstrap включает стили проверки valid и invalid состояний для большинства элементов управления формой.
Вообще говоря, вы захотите использовать определенное состояние для определенных типов обратной связи:
false (обозначает недопустимое состояние) отлично подходит, когда есть блокирующее или обязательное поле. Пользователь должен правильно заполнить это поле, чтобы отправить форму.
true (обозначает допустимое состояние) идеально подходит для ситуаций, когда у вас есть проверка по каждому полю во всей форме и вы хотите побудить пользователя пройти через остальные поля.
null Не отображает состояние проверки (ни действительное, ни недействительное)
Чтобы применить один из значков контекстного состояния к <b-form-select>, установите для свойства state значение false (для недопустимого), true (для действительного) или null (состояние проверки отсутствует).
Передача состояния контекстной проверки вспомогательным технологиям и пользователям с дальтонизмом
Использование этих контекстных состояний для обозначения состояния элемента управления формы обеспечивает только визуальную цветовую индикацию, которая не будет передана пользователям вспомогательных технологий, таких как программы чтения с экрана, или пользователям с дальтонизмом.
Убедитесь, что также имеется альтернативная индикация состояния. Например, вы можете включить подсказку о состоянии в самом тексте элемента управления формы <label> или предоставив дополнительный блок текста справки (через <b-form-group> или <b-form-*-feedback>). В частности, для вспомогательных технологий недопустимым элементам управления формой также может быть назначен атрибут aria-invalid="true" (смотрите ниже).
Атрибут ARIA
aria-invalid
Когда <b-form-select> имеет недопустимое контекстное состояние (например, state = false), вы также можете установить для <b-form-select> свойства aria-invalid значение true.
Поддерживаемые invalid значения:
false (по умолчанию) Ошибок не обнаружено
true Значение не прошло проверку
Когда для параметра state установлено значение false, для параметра aria-invalid также будет установлено значение true.
Не кастомный селект
Задайте для свойства plain свойство рендеринга <select> в собственном браузере (хотя класс .form-control всегда будет помещен в выделение).
plain выбор всегда будет отображаться для не multiple селектов, для которых свойство select-size установлено на значение больше 1.
Справочник по компонентам
<b-form-select>
Смотреть источник
<b-form-select> Псевдонимы компонентов
<b-form-select> Свойства
<b-form-select> v-model
<b-form-select> Слоты
<b-form-select> События
Псевдонимы компонентов
<b-form-select> также может использоваться через следующие псевдонимы:
<b-select>
Примечание: Псевдонимы компонентов доступны только при импорте всего BootstrapVue или при использовании подключаемого модуля группы компонентов.
Свойства
Все значения свойств по умолчанию настраиваются глобально.
Свойство
(Click to sort ascending)
Тип
(Click to sort ascending)
По умолчанию
Описание
aria-invalid
Boolean или String
false
Необязательное значение для атрибута ‘aria-invalid’. Поддерживаемые значения: ‘true’ и ‘false’. Если не установлен, свойство ‘state’ будет определять значение
autofocus
Boolean
false
Если установлено значение `true`, пытается автоматически сфокусировать элемент управления, когда он установлен, или повторно активировать, когда находится в состоянии активности. Не устанавливает атрибут `autofocus` на элементе управления
disabled
Boolean
false
Если установлено значение `true`, отключает функциональность компонента и переводит его в отключенное состояние.
disabled-field
String
'disabled'
Имя поля в массиве `options`, которое следует использовать для отключенного состояния
form
String
Идентификатор формы, к которой принадлежит элемент управления формой. Устанавливает атрибут `form` в элементе управления
html-field Использовать с осторожностью
String
'html'
Имя поля в массиве `options`, которое следует использовать для html-метки вместо текстового поля
id
String
Используется для установки атрибута `id` для визуализированного контента и используется в качестве основы для генерации любых дополнительных идентификаторов элементов по мере необходимости.
label-field
String
'label'
Ключ, который нужно использовать из объекта option для получения метки
multiple
Boolean
false
Когда установлено, позволяет выбрать несколько опций (множественный выбор)
name
String
Устанавливает значение атрибута `name` в элементе управления формы
options
Array или Object
[]
Массив элементов для визуализации в компоненте
options-field
String
'options'
Ключ, который нужно использовать из объекта option для получения опций
plain
Boolean
false
Визуализируйте элемент управления формы в обычном режиме, а не в режиме пользовательского стиля
required
Boolean
false
Добавляет атрибут `required` в элемент управления формы
select-size
Number
0
Если установлено значение больше 0, будет установлено количество строк параметров отображения. Обратите внимание, что не все браузеры будут учитывать этот параметр
size
String
Установите размер внешнего вида компонента. ‘sm’, ‘md’ (по умолчанию) или ‘lg’
state
Boolean
null
Управляет внешним видом состояния проверки компонента. `true` для действительного, `false` для недопустимого или `null` для отсутствия проверки состояния
text-field
String
'text'
Имя поля в массиве `options`, которое следует использовать для текстовой метки
value v-model
Any
Текущее значение выбора. Должен быть установлен в массив, если задано свойство ‘multiple’
value-field
String
'value'
Имя поля в массиве `options`, которое следует использовать для значения
Осторожно: Свойства, поддерживающие HTML-строки
(*-html) может быть уязвим для
Атаки межсайтового скриптинга (XSS)
при передаче необработанных значений, предоставленных пользователем. Вы должны правильно
очищать
ввод пользователя!
v-model
Свойство
Событие
value
input
Слоты
Наименование
Описание
default
Контент для размещения в форме выберите
first
Слот для размещения опций или групп опций над опциями, предоставленными через свойство ‘options’
События
Событие
Аргументы
Описание
change
value —
Текущее выбранное значение(я) выбранного
Генерируется, когда значение выбора изменяется в результате взаимодействия с пользователем
input
value —
Текущее выбранное значение(я) выбранного
Emitted when the select value changes
<b-form-select-option>
v2. 2.0+
Функциональный компонент
Смотреть источник
<b-form-select-option> Псевдонимы компонентов
<b-form-select-option> Свойства
<b-form-select-option> Слоты
Псевдонимы компонентов
<b-form-select-option> также может использоваться через следующие псевдонимы:
<b-select-option>
Примечание: Псевдонимы компонентов доступны только при импорте всего BootstrapVue или при использовании подключаемого модуля группы компонентов.
Свойства
Все значения свойств по умолчанию настраиваются глобально.
Свойство
Тип
По умолчанию
Описание
disabled
Boolean
false
Если установлено значение `true`, отключает функциональность компонента и переводит его в отключенное состояние.
<b-form-select-option-group> также может использоваться через следующие псевдонимы:
<b-select-option-group>
Примечание: Псевдонимы компонентов доступны только при импорте всего BootstrapVue или при использовании подключаемого модуля группы компонентов.
Свойства
Все значения свойств по умолчанию настраиваются глобально.
Свойство
Тип
По умолчанию
Описание
disabled-field
String
'disabled'
Имя поля в массиве `options`, которое следует использовать для отключенного состояния
html-field Использовать с осторожностью
String
'html'
Имя поля в массиве `options`, которое следует использовать для html-метки вместо текстового поля
label Обязательный
String
Ярлык для группы опций
options
Array или Object
[]
Массив элементов для визуализации в компоненте
text-field
String
'text'
Имя поля в массиве `options`, которое следует использовать для текстовой метки
value-field
String
'value'
Имя поля в массиве `options`, которое следует использовать для значения
Осторожно: Свойства, поддерживающие HTML-строки
(*-html) может быть уязвим для
Атаки межсайтового скриптинга (XSS)
при передаче необработанных значений, предоставленных пользователем. Вы должны правильно
очищать
ввод пользователя!
Слоты
Наименование
Описание
default
Контент для размещения в форме выберите группу опций
first
Слот для размещения опций над опциями, предоставленными через свойство ‘options’
Импорт отдельных компонентов
Вы можете импортировать отдельные компоненты в свой проект с помощью следующих именованных экспортов:
Компонент
Именованный экспорт
Путь импорта
<b-form-select>
BFormSelect
bootstrap-vue
<b-form-select-option>
BFormSelectOption
bootstrap-vue
<b-form-select-option-group>
BFormSelectOptionGroup
bootstrap-vue
Пример:
import { BFormSelect } from 'bootstrap-vue'
Vue. component('b-form-select', BFormSelect)
Импортировать как плагин Vue.js
Этот плагин включает в себя все перечисленные выше отдельные компоненты.
Плагины также включают псевдонимы любых компонентов.
Именованный экспорт
Путь импорта
FormSelectPlugin
bootstrap-vue
Пример:
import { FormSelectPlugin } from 'bootstrap-vue'
Vue.use(FormSelectPlugin)
HTML тег
onplay
Скрипт викликається коли медіа дані готові почати відтворення.
onafterprint
Скрипт виконується тільки після як документ надрукований.
onbeforeprint
Скрипт виконується перед тим, як документ надрукований.
onbeforeunload
Скрипт виконується коли документ ось-ось буде вивантажений
onhashchange
Скрипт виконується коли там відбулися зміни до частини якоря в URL
onload
Викликається після того як завантаження елемента завершене.
onmessage
Скрипт виконується коли викликане повідомлення.
onoffline
Спрацьовує коли браузер починає працювати в автономному режимі
ononline
Спрацьовує коли браузер починає працювати в режимі онлай.
onpagehide
Скрипт виконується коли користувач переходить на іншу сторінку сторінку.
onpageshow
Скрипт виконується коли користувач заходить на сторінку.
onpopstate
Скрипт виконується коли змінено історію одного вікна.
onresize
Скрипт виконується, коли розмір вікна браузера змінюється.
onstorage
Скрипт виконується, коли вміст Web Storage оновлюється.
onunload
Викликається, коли сторінка розвантажена, або вікно браузера було зачинено.
onblur
Скрипт виконується, коли елемент втрачає фокус.
onchange
Викликається в той момент, коли значення елемента змінюється.
oncontextmenu
Скрипт виконується коли викликається контекстне меню.
onfocus
Викликається в той момент, коли елемент отримує фокус.
oninput
Скрипт викликається коли користувач вводить дані поле.
oninvalid
Скрипт виконується, коли елемент недійсний.
onreset
Викликається, коли натискається у формі кнопка типу Reset.
onsearch
Викликається, коли користувач щось пише в поле пошуку (для <input type="search">)
onselect
Викликаєтсья після того як будь-який текст був обраний в елементі.
onsubmit
Викликається при відправленні форми.
onkeydown
Подія викликається, коли користувач затис (натиснув та не відпускає) клавішу.
onkeypress
Викликається коли корисрувач натиснув на клавішу.
onkeyup
Викликається коли користувач відпускає клавішу.
ondblclick
Виникає при подвійному клацанні ЛКМ на елементі.
ondrag
Періодично викликається при операції перетягування.
ondragend
Викликається коли користувач відпускає перелягуваний елемент.
ondragenter
Викликається, коли перетягуваний елемент входить в цільову зону.
ondragleave
Викликається, коли перетягуваний елемент виходть з зони призначення.
ondragover
Викликається, коли перетягуваний елемент знаходиться в зоні призначення.
ondragstart
Викликається, коли користувач починає перетягувати елемент, або виділений текст.
ondrop
Викликається, коли перетягуваний елемент падає до зони призначення.
onmousedown
Викликається, коли користувач затискає ЛКМ на елементі.
onmousemove
Викликається, коли курсор миші переміщається над елементом.
onmouseout
Викликається, коли курсор виходить за межі елемента.
onmouseover
Виконується, коли курсор наводиться на елемент.
onmouseup
Викликається, коли користувач відпускає кнопку миші.
onscroll
Викликається при прокручуванні вмісту елемента (чи веб-сторінки).
onwheel
Викликається, коли користувач прокручує коліщатко миші.
oncopy
Викликається, коли користувач копіює вміст елемента.
oncut
Викликається, коли користувач вирізає вміст елемента.
onpaste
Викликається, коли користувач вставляє вміст в елемент.
onabort
Виконується при перериванні якоїсь події.
oncanplay
Скрипт виконується коли файл готовий, для початку відтворення (коли він буферизований достатньо, щоб почати відтворення)
oncanplaythrough
Скрипт виконується, коли контент вже може бути відтворений без переривання на буферизацію.
oncuechange
Скрипт виконується коли змінюється кий в <track> елемента
ondurationchange
Викликається коли змінюється довжина медіа файлу.
onemptied
Викликається коли доступ до медіа контенту обривається (зникло з’єднання з мережею).
onended
Викликається коли медіа елемент повністю відтворив свій зміст.
onshow
Викликається, коли елемент <menu> буде відображено як контекстне меню.
onloadedmetadata
Скрипт виконується коли метадані (розміри чи тривалість) завантажуються.
onloadeddata
Викликається коли медіа данні завантажено.
onloadstart
Викликається коли браузер тільки починає завантажувати медіа дані з сервера.
onpause
Викликається коли відтворення медіа даних призупинено.
onplaying
Викликається коли розпочато відтворення медіа даних.
onprogress
Подія onprogress відбувається, коли браузер завантажує вказане аудіо / відео.
onratechange
Викликається коли змінюється швидкість відтворення медіа даних.
onseeked
Викликається коли атрибут seeked у тега audio або video змінює значення з true на false.
onseeking
Викликається коли атрибут seeking у тегів audio або video змінює значення з false на true
onstalled
Скрипт виконується коли браузер з будь-якої причини не може отримати медіа дані.
onsuspend
Скрипт виконується коли з будь-якої причини завантаження данних призупинено до його повного завантаження.
ontimeupdate
Викликається коли змінилася позиція відтворення елемента <audio> або <video>.
onvolumechange
Викликається коли змінюється гучність звуку.
onwaiting
Викликається коли наступний кадр при відтворенні медіа даних недоступний, але браузер очікує що він незабаром завантажиться.
ontoggle
Викликається, коли користувач відкриває або закриває елемент <details>.
onerror
Викликається якщо при завантаженні елемента сталася помилка.
onclick
Подія викликається коли користувач клацає ЛКМ по елементу.
: элемент выбора HTML — The HTML-элемент представляет собой элемент управления, предоставляющий меню параметров.
HTML — элемент <select> представляет собой элемент управления, предоставляющий меню опций.
Try it
В приведенном выше примере показано типичное использование <select> . Ему дается атрибут id , позволяющий связать его с <label> для целей доступности, а также атрибут name для представления имени связанной точки данных, отправленной на сервер. Каждая опция меню определяется элементом <option> , вложенным внутри <select> .
Каждый элемент <option> должен иметь атрибут value , содержащий значение данных для отправки на сервер при выборе этого параметра. Если атрибут value не включен, по умолчанию используется текст, содержащийся внутри элемента. Вы можете включить selected атрибут в элемент <option> , чтобы сделать его выбранным по умолчанию при первой загрузке страницы.
Элемент <select> имеет некоторые уникальные атрибуты, которые вы можете использовать для управления им, например, multiple чтобы указать, можно ли выбрать несколько параметров, и size чтобы указать, сколько параметров должно отображаться одновременно. Он также принимает большинство атрибутов ввода общей формы, таких как required , disabled , autofocus и т. Д.
Вы можете дополнительно <optgroup> элементы <option> в элементы <optgroup>, чтобы создать отдельные группы параметров внутри раскрывающегося списка.
Дополнительные примеры см. В разделе Виджеты собственных форм: раскрывающееся содержимое .
Attributes
Этот элемент включает глобальные атрибуты .
autocomplete
DOMString обеспечивает подсказку для агента пользователя функции автозаполнения. См . Атрибут автозаполнения HTML для получения полного списка значений и подробностей о том, как использовать автозаполнение.
autofocus
Этот логический атрибут позволяет указать, что элемент управления формы должен иметь фокус ввода при загрузке страницы. Только один элемент формы в документе может иметь атрибут autofocus .
disabled
Этот логический атрибут указывает, что пользователь не может взаимодействовать с элементом управления. Если этот атрибут не указан, элемент управления наследует свои настройки от содержащего элемента, например <fieldset> ; если нет содержащего элемента с установленным атрибутом disabled , то элемент управления включен.
form
Элемент <form> ,с которым нужно связать <select> (его владельца формы ). Значение этого атрибута должно быть id из <form> в том же документе. (Если этот атрибут не установлен, <select> связан со своим предком <form> элементом, если таковой имеется. )
Этот атрибут позволяет вам связывать элементы <select> с <form> в любом месте документа, а не только внутри <form> . Он также может переопределить элемент- предок <form> .
multiple
Этот логический атрибут указывает, что в списке можно выбрать несколько параметров. Если он не указан, то одновременно можно выбрать только один вариант. Если указано multiple , в большинстве браузеров отображается поле со списком с прокруткой вместо раскрывающегося списка с одной строкой.
name
Данный атрибут используется для указания имени элемента управления.
required
Булевый атрибут,указывающий на то,что необходимо выбрать опцию со значением непустой строки.
size
Если элемент управления представлен в виде окна списка с прокруткой (например, если указано multiple ), этот атрибут представляет количество строк в списке, которые должны быть видимы одновременно. Браузеры не обязаны представлять элемент выбора в виде прокручиваемого списка. Значение по умолчанию — 0 .
Примечание. Согласно спецификации HTML5, значение по умолчанию для размера должно быть 1 ; однако на практике было обнаружено, что это нарушает работу некоторых веб-сайтов, и ни один другой браузер в настоящее время этого не делает, поэтому Mozilla решила продолжать возвращать 0 на данный момент с Firefox.
Usage notes
Выбор нескольких вариантов
На настольном компьютере есть несколько способов выбрать несколько параметров в элементе <select> с multiple атрибутами:
Пользователи мыши могут удерживатьCtrl,Command, orShift(в зависимости от того,что имеет смысл для вашей операционной системы),а затем щелкните несколько вариантов,чтобы выбрать/отменить их.
Предупреждение . Механизм выбора нескольких несмежных элементов с помощью клавиатуры, описанный ниже, в настоящее время работает только в Firefox.
В macOSCtrl+UpandCtrl+DownЯрлыки конфликтуют с ярлыками ОС по умолчанию для окон Mission Control и Application , поэтому вам придется отключить их, прежде чем они будут работать.
Пользователи клавиатуры могут выбрать несколько смежных элементов с помощью:
Сосредоточение внимания на элементе <select> (например, использованиеTab).
Выбор элемента в верхней или нижней части диапазона,который они хотят выбрать,с помощью кнопкиUpandDownкурсорные клавиши для перехода вверх и вниз по опциям.
Удерживая нажатой кнопкуShiftи затем с помощью клавишиUpandDownклавиши курсора для увеличения или уменьшения диапазона выбранных элементов.
Пользователи клавиатуры могут выбрать несколько несмежных элементов с помощью:
Сосредоточение внимания на элементе <select> (например, использованиеTab).
Удерживая нажатой кнопкуCtrlзатем с помощью кнопкиUpandDownклавиши курсора,чтобы изменить «сфокусированный» вариант выбора,т.е.тот,который будет выбран,если вы решите это сделать.»Сфокусированный» вариант выбора выделяется пунктирным контуром,так же как и ссылка,сфокусированная с помощью клавиатуры.
Общеизвестно , что элемент <select> сложно продуктивно стилизовать с помощью CSS. Вы можете воздействовать на определенные аспекты, как и на любой элемент — например, манипулируя блочной моделью , отображаемым шрифтом и т. д ., и вы можете использовать свойство appearance , чтобы удалить appearance системы по умолчанию .
Однако эти свойства не дают единообразного результата в разных браузерах, и сложно делать такие вещи, как выравнивание элементов формы разных типов друг с другом в столбце. <select> Внутренняя структура элемента является сложной и трудно контролировать. Если вы хотите получить полный контроль, вам следует рассмотреть возможность использования библиотеки с хорошими возможностями для стилизации виджетов форм или попробовать развернуть собственное раскрывающееся меню с использованием несемантических элементов, JavaScript и WAI-ARIA для обеспечения семантики.
Дополнительные полезные сведения о стилизации <select> см.
Стилизация HTML форм
Расширенный стиль для форм HTML
Также см. Пример «Настройка выбранных стилей» ниже, где вы можете попробовать простой стиль <select> .
В этом примере XHTML 1.0 Strict Document мы использовали тег для создания списка из трех выпадающих значений — HTML, CSS и SQL. Эти значения будут отображаться в виде раскрывающегося списка, из которого пользователь может выбирать.
Документ XHTML 1.1
Если вы создали новую веб-страницу в XHTML 1.1, ваш тег может выглядеть следующим образом: