HTML-тег <datalist>
HTML-тег
<datalist>
используется для предоставления списка предопределённых вариантов для элемента
<input>
. Он расширяет возможности пользовательского ввода, предлагая подсказки и позволяя пользователю вводить собственные значения. Это особенно полезно для функций автозаполнения, повышая удобство использования и точность ввода данных в формах.
Тег
<datalist>
работает, связываясь с элементом
<input>
через атрибут
list
. Каждый параметр в списке данных определяется с помощью тега
<option>
.
Базовый синтаксис тега <datalist>
Базовая структура тега
<datalist>
следующая:
<input list="id-of-datalist">
<datalist id="id-of-datalist">
<option value="Option 1">
<option value="Option 2">
<option value="Option 3">
</datalist>
Атрибуты тега <datalist>
-
id:
Обязательный атрибут, который связывает
<datalist>с элементом<input>через атрибут вводаlist.
Базовый пример HTML-тега <datalist>
Вот пример использования тега
<datalist>
для предоставления списка предложений для текстового ввода:
<!DOCTYPE html>
<html>
<body>
<h2>Datalist Example</h2>
<label for="browser">Choose a browser:</label>
<input list="browsers" id="browser" name="browser">
<datalist id="browsers">
<option value="Google Chrome">
<option value="Mozilla Firefox">
<option value="Safari">
<option value="Microsoft Edge">
<option value="Opera">
</datalist>
</body>
</html>
Пояснение: Когда пользователь нажимает на поле ввода или начинает вводить текст, браузер отображает раскрывающийся список с предустановленными вариантами. Пользователь может выбрать один из них или ввести собственное значение.
Когда следует использовать тег <datalist>?
- Автозаполнение: когда вы хотите предложить предопределенные варианты, но при этом оставить возможность пользовательского ввода.
- Управляемый ввод: направляет пользователя к часто используемым или допустимым вводам, не ограничивая его.
- Динамические предложения: в сочетании с JavaScript вы можете динамически заполнять список данных на основе взаимодействия с пользователем.
Расширенное использование HTML-тега <datalist>
1. Динамическое заполнение элементов в списке данных с помощью JavaScript
Вы можете динамически заполнить элемент
<datalist>
с помощью JavaScript:
<!DOCTYPE html>
<html>
<body>
<h2>Dynamic Datalist Example</h2>
<label for="fruit">Choose a fruit:</label>
<input list="fruits" id="fruit" name="fruit">
<datalist id="fruits"></datalist>
<script>
const fruits = ["Apple", "Banana", "Cherry", "Date", "Grapes"];
const datalist = document.getElementById("fruits");
fruits.forEach(fruit => {
const option = document.createElement("option");
option.value = fruit;
datalist.appendChild(option);
});
</script>
</body>
</html>
Объяснение:
Код JavaScript динамически создает элементы
<option>
для каждого фрукта в массиве и добавляет их к
<datalist>
.
2. Пользовательская проверка входных данных по списку данных
Вы можете проверить входные данные на соответствие параметрам в списке данных с помощью JavaScript:
<!DOCTYPE html>
<html>
<body>
<h2>Validation with Datalist</h2>
<label for="language">Choose a programming language:</label>
<input list="languages" id="language" name="language">
<datalist id="languages">
<option value="JavaScript">
<option value="Python">
<option value="Java">
<option value="C++">
</datalist>
<button onclick="validateInput()">Submit</button>
<script>
function validateInput() {
const input = document.getElementById("language").value;
const options = [...document.getElementById("languages").options].map(opt => opt.value);
if(options.includes(input)) {
alert("Valid choice!");
} else {
alert("Invalid choice. Please select from the suggestions.");
}
}
</script>
</body>
</html>
Объяснение: Функция JavaScript проверяет, соответствует ли ввод пользователя одному из предопределенных вариантов, и предоставляет соответствующую обратную связь.