Spec-Zone.ru › Web APIs

HTMLInputElement: метод showPicker()

Метод HTMLInputElement.showPicker() отображает браузерный выборщик для элемента input.

Это тот же выборщик, который обычно отображается при выборе элемента, но может быть вызван нажатием кнопки или другим взаимодействием пользователя.

Браузеры обычно реализуют его для ввода следующих типов: "date", "month", "week", "time", "datetime-local", "color", или "file". Он также может быть предварительно заполнен элементами из элемента <datalist> или атрибута autocomplete.

В более общем случае, этот метод должен отображать выборщик для любого элемента ввода на платформе, имеющего выборщик.

Синтаксис

showPicker()

Параметры

Нет.

Возвращаемое значение

Нет (undefined).

Исключения

InvalidStateError DOMException

Выбрасывается, если элемент не изменяем, то есть пользователь не может его изменить и/или его нельзя автоматически заполнить.

NotAllowedError DOMException

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

SecurityError DOMException

Выбрасывается, если вызывается в iframe с другим доменным именем, за исключением выборщиков файла и цвета (исключение по историческим причинам).

Безопасность

Требуется временное взаимодействие пользователя. Пользователь должен взаимодействовать со страницей или элементом пользовательского интерфейса для работы этой функции.

Примеры

Обнаружение функции

Ниже приведен код, показывающий, как проверить поддержку showPicker():

if ("showPicker" in HTMLInputElement.prototype) {
  // showPicker() is supported.
}

Стандартные выборщики ввода

Этот пример показывает, как использовать эту функцию для выборщиков ввода color и file.

Примечание: Выборщики для date, datetime-local, month, time, week запускаются аналогичным образом. Их нельзя показать здесь, потому что живые примеры выполняются в кадре с другим доменным именем и приведут к SecurityError

HTML

<p>
  <input type="color" />
  <button id="color">Show the color picker</button>
</p>

<p>
  <input type="file" />
  <button id="file">Show the file picker</button>
</p>

JavaScript

Код просто получает предыдущий элемент выбранной кнопки и вызывает showPicker() на нём.

document.querySelectorAll("button").forEach((button) => {
  button.addEventListener("click", (event) => {
    const input = event.srcElement.previousElementSibling;
    try {
      input.showPicker();
    } catch (error) {
      console.log(error);
    }
  });
});

Результат

Нажмите кнопку рядом с каждым типом ввода, чтобы отобразить его выборщик.

showPicker() для ввода datalist

showPicker() может запустить выборщик для списка вариантов, определённых в <datalist>.

Сначала мы определяем <datalist> в HTML, состоящий из ряда интернет-браузеров, поля ввода типа text, которое его использует, и кнопки.

<datalist id="browsers">
  <option value="Chrome"></option>
  <option value="Firefox"></option>
  <option value="Opera"></option>
  <option value="Safari"></option>
  <option value="Microsoft Edge"></option>
</datalist>

<input type="text" list="browsers" />
<button>Select browser</button>

Код ниже добавляет обработчик событий, который вызывает showPicker() при нажатии кнопки.

const button = document.querySelector("button");
const browserInput = document.querySelector("input");

button.addEventListener("click", () => {
  try {
    browserInput.showPicker();
  } catch (error) {
    // Fall back to another picker mechanism
  }
});

showPicker() для автозаполнения

showPicker() может запустить выборщик для атрибута autocomplete ввода.

Здесь мы определяем поле ввода, которое использует опцию автозаполнения «name».

<input autocomplete="name" /> <button>Show autocomplete options</button>

Код ниже показывает выборщик для поля ввода при нажатии кнопки.

const button = document.querySelector("button");
const browserInput = document.querySelector("input");

button.addEventListener("click", () => {
  try {
    browserInput.showPicker();
  } catch (error) {
    // Fall back to another picker mechanism
  }
});

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

Спецификация
HTML
# dom-input-showpicker

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
showPicker 99 99 101 85 16 99 101 68 16 18.0 99
autocomplete_input 99 99 Нет 85 Нет 99 Нет 68 Нет 18.0 99
color_input 99 99 101 85 16 99 101 68 Нет 18.0 99
datalist_input 99 99 Нет 85 предварительный просмотр 99 Нет 68 Нет 18.0 99
date_input 99 99 101 85 17.4 99 101 68 Нет 18.0 99
datetime_local_input 99 99 101 85 17.4 99 101 68 Нет 18.0 99
file_input 99 99 101 85 16 99 101 68 16 18.0 99
month_input 99 99 Нет 85 Нет 99 121101–112 68 Нет 18.0 99
time_input 99 99 Нет 85 16 99 101 68 Нет 18.0 99
week_input 99 99 Нет 85 Нет 99 121101–112 68 Нет 18.0 99

См. также

  • <input>
  • HTMLInputElement
  • HTMLSelectElement.showPicker()
  • <datalist>
  • autocomplete

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/showPicker

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API