Тег <datalist> используется для создания списка опций для элемента ввода. Пользователь может выбрать опцию из списка вместо того, чтобы вводить её вручную.

Примеры использования

Простой список опций:

<label for="fruits">Выберите фрукт:</label>
<input list="fruit_options" id="fruits" name="fruit_name">
<datalist id="fruit_options">
  <option value="Яблоко">
  <option value="Банан">
  <option value="Апельсин">
</datalist>

Список опций с описанием:

<label for="countries">Выберите страну:</label>
<input list="country_options" id="countries" name="country_name">
<datalist id="country_options">
  <option value="GER">Германия</option>
  <option value="CHIN">Китай</option>
  <option value="MEX">Мексика</option>
</datalist>

Динамический список опций:

<label for="cities">Выберите город:</label>
<input list="city_options" id="cities" name="city_name">
<datalist id="city_options">
  <option value="Москва">
  <option value="Санкт-Петербург">
  <option value="Казань">
</datalist>

<button onclick="addCity()">Добавить город</button>

<script>
function addCity() {
  var cityInput = document.getElementById("cities");
  var newOption = document.createElement("option");
  newOption.value = "Новый город";
  cityInput.appendChild(newOption);
}
</script>

Для чего использовать тег <datalist>

  • Для фильтрации и предложения вариантов. Используйте <datalist> для предложения вариантов на основе пользовательского ввода и динамически обновляйте список по мере ввода пользователем.
  • Для автозаполнения поисковых запросов. Используйте тег для создания перечня предлагаемых поисковых запросов по мере того, как пользователь набирает текст в строке поиска.
  • Для перечня доступных опций. Используйте <datalist>, чтобы создать список доступных вариантов для ввода в форму.
  • Для списка ранее использованных входов. Используйте тег, чтобы показать список ранее использованных данных — например, недавно вводимых адресов электронной почты.
  • Для вывода подсказок при неполном вводе. Например, показывайте список логинов или адресов электронной почты на основе того, что пользователь уже набрал.
  • Для списка доступных категорий или тегов. Используйте <datalist>, чтобы сформировать список доступных категорий или тегов в блоге.

Ограничения

  • Тег поддерживает только текстовые опции. Его нельзя использовать для опций с изображениями или другими медиа.
  • У <datalist> нет встроенных функций для фильтрации или сортировки опций.
  • Тег плохо поддерживается в старых браузерах. Поэтому для пользователей, использующих старые браузеры, необходимо предусмотреть запасной вариант.

Нюансы

  • Если пользователь вводит значение, которого нет в списке опций, оно всё равно будет принято и отправлено вместе с данными формы.
  • Если элемент ввода помечен как обязательный, пользователь не сможет отправить форму, если не выберет вариант из списка.
  • Если в списке вариантов одно и то же значение встречается несколько раз, каждое из них будет отображаться как отдельный вариант.

Чем заменить тег

Если тег <details> не поддерживается в браузере пользователя, используйте JavaScript или CSS для создания собственного виджета с аналогичной функциональностью.


«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

ТелеграмПодкастБесплатные учебники

Читать дальше

Основное содержимое страницы. Тег body

Основное содержимое страницы. Тег body

🚀 Сегодня вам бесплатно доступен тренажёр по HTML и CSS.

✔️ Актуальный

🏗️ Семантический

📝 Спецификация

Тег <body> используется для размещения всего содержимого, которое отображается на веб-странице.

<!DOCTYPE html>
<html>
  <head>
    <title>Заголовок страницы</title>
  </head>
  <body>
    <h1>Заголовок 1</h1>
    <p>Это параграф.</p>
  </body>
</html>

Атрибуты тега <body>:

  • onbeforeunload — сценарий, который выполнится, когда пользователь соберётся покинуть страницу.
  • onhashchange — сценарий, который выполнится при изменении URL.
  • onmessage — сценарий, который выполнится при получении сообщения от приложения.
  • onoffline — сценарий, который выполнится, когда браузер начнёт работать в автономном режиме.
  • ononline — сценарий для запуска, когда браузер начинает работать в режиме онлайн.
  • onpagehide — сценарий, который выполняется, когда пользователь переходит со страницы.
  • onpageshow — сценарий, который выполняется, когда пользователь переходит на страницу.
  • onunload — сценарий, который выполняется, когда пользователь покидает страницу.
  • onafterprint — сценарий, который выполнится после печати веб-страницы.
  • onbeforeprint — сценарий, который выполнится перед печатью веб-страницы.
  • onlanguagechange — сценарий, который выполнится при изменении языка документа.
  • onmessageerror — сценарий, который выполнится при возникновении ошибки в сообщении, полученном с помощью API Messaging.
  • onpopstate — сценарий, который выполнится при изменении состояния истории браузера.
  • onrejectionhandled — сценарий, который выполнится при обработке отклоненного обещания в объекте Promise.
  • onstorage — сценарий, который выполнится при изменении данных в объекте localStorage или sessionStorage.
  • onunhandledrejection — сценарий, который выполнится при возникновении отклоненного обещания в объекте Promise без обработки.
Читать дальше
  • 13 марта 2024
Жирный текст на сайте. Тег b

Жирный текст на сайте. Тег b

🚀 Сегодня вам бесплатно доступен тренажёр по HTML и CSS.

Тег <b> используется для выделения текста без дополнительного акцента или значимости. В результате содержимое этого тега обычно отображается жирным шрифтом. Несмотря на это, этот тег не должен использоваться для стилизации; для таких задач лучше использовать CSS.

<p>Сегодня мы <b>не</b> будем работать допоздна!</p>

Сегодня мы не будем работать допоздна!

Читать дальше
  • 2 марта 2024
Контейнер для чего угодно. Тег <div>

Контейнер для чего угодно. Тег <div>

Тег <div> определяет раздел или секцию в HTML-документе. Это контейнер, который используется для группировки других элементов, таких как текст, изображения или другие теги, в разделы или блоки.

<div class="section">
  <h2>Заголовок секции</h2>
  <p>Какое-нибудь содержимое секции</p>
</div>
Читать дальше
  • 6 октября 2023
Как добавить подпись в HTML. Тег <figcaption>

Как добавить подпись в HTML. Тег <figcaption>

Тег <figcaption> используется для добавления подписи к элементу <figure>. Обычно он размещается после других медиа-элементов, например, после <img>, и содержит описание либо название изображения или другого контента, находящегося внутри <figure>.

<figure>
  <img src="image.jpg" alt="Image">
  <figcaption>Описание изображения</figcaption>
</figure>

Устаревший атрибут align — выравнивание подписи относительно элемента <figure>.

Тег <figcaption> может использоваться только внутри элемента <figure>.

Валидный HTML требует, чтобы тег <figcaption> находился после элемента <img> или других медиа-элементов внутри <figure>. Однако это необязательное правило, и подпись может располагаться перед медиа-элементом или даже внутри него.

Читать дальше
  • 6 октября 2023
Метаданные HTML-страницы. Тег <meta>

Метаданные HTML-страницы. Тег <meta>

Тег <meta> содержит метаданные о документе HTML. Он может включать такую информацию, как имя автора, название документа, ключевые слова и набор символов.

<head>
  <meta charset="UTF-8">
  <meta name="description" content="Это описание веб-страницы">
  <meta name="keywords" content="HTML, CSS, JavaScript">
  <meta name="author" content="Иван Иванов">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

Тег <meta> помещается в <head> HTML-документа.

Атрибуты тега <meta>:

  • charset — кодировка символов в документе.
  • name — имя метаданных.
  • content — значение метаданных.
  • http-equiv — HTTP-заголовок для значения атрибута content.

Атрибут charset должен быть первым атрибутом в теге <meta>, а name и http-equiv нельзя использовать вместе.

Читать дальше
  • 4 октября 2023
Просто кнопка. Тег <button>

Просто кнопка. Тег <button>

Тег <button> создаёт кликабельную кнопку, которая может запускать действия или события на веб-странице. Например, отправку или перезагрузку формы, запуск функции, открытие нового окна или добавление товара в корзину.

Атрибуты тега <button>:

  • name — имя кнопки.
  • type — тип кнопки, по умолчанию — submit. Атрибут type необходим, если указан атрибут value.
  • value — значение, которое будет отправлено на сервер при нажатии на кнопку.
  • disabled — указывает, что кнопка должна быть отключена.
  • form — одна или несколько форм, к которым принадлежит кнопка.
  • formaction — URL-адрес файла, который будет обрабатывать ввод при нажатии кнопки.
  • formenctype — указывает, как данные формы должны быть закодированы при отправке на сервер.
  • formmethod — метод HTTP, используемый при отправке данных формы.
  • formnovalidate — устанавливает, что данные формы не должны проверяться при отправке на сервер.
  • formtarget — указывает, где отображать ответ после отправки формы.
Читать дальше
  • 4 октября 2023
Независимый контент. Тег <article>

Независимый контент. Тег <article>

Тег <article> в HTML используется для выделения содержимого, которое является независимым и самодостаточным. Это означает, что такой контент может быть переиспользоваться в разных местах без потери смысла.

<article>
  <h2>Заголовок статьи</h2>
  <p>Текст статьи...</p>
</article>

Тегом <article> размечают статьи в блогах, сообщения на форумах и другие материалы, которые имеют смысл и ценность, даже если они прочитаны вне контекста, в котором были созданы.

Не используйте <article> для группировки элементов, которые не являются самостоятельными материалами, например, для списка продуктов или новостей.

Читать дальше
  • 3 октября 2023
Как встроить страницу через <iframe>

Как встроить страницу через <iframe>

Тег <iframe> позволяет встраивать контент (например, веб-страницы, видео) прямо в ваш документ HTML.

Простейший пример использования <iframe>:

<iframe src="https://example.com" width="600" height="400"></iframe>

Атрибут src задаёт URL-адрес страницы, которую вы хотите встроить.

Атрибуты width и height — ширина и высота фрейма (можно задавать как в пикселях, так и в процентах).

Читать дальше
  • 3 октября 2023
Выпадающий список. Тег <select>

Выпадающий список. Тег <select>

Тег <select> используется для создания выпадающего списка. Этот тег содержит список опций, которые пользователь может выбрать. Когда пользователь выбирает опцию, выбранное значение отправляется на сервер или обрабатывается на клиентской стороне.

Все опции списка должны быть обёрнуты в тег <option>.

Атрибуты тега <select>:

  • autocomplete — подсказка для функции автозаполнения формы;
  • disabled — делает элемент неактивным;
  • form — связывает список с формой;
  • multiple — позволяет выбрать несколько опций;
  • name — задает имя элемента, которое будет отправляться на сервер;
  • required — делает элемент обязательным для заполнения;
  • size — задает количество строк в списке.

Атрибуты value в тегах <option> могут быть использованы для отправки значений на сервер.

Читать дальше
  • 1 октября 2023