Откройте список данных с помощью кнопки - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть вход, связанный со списком данных, и я хочу использовать кнопку для записи во вход, но я не могу воспроизвести событие, которое открывает список. Список данных отфильтрован, но я должен нажать на вход, чтобы открыть список ... click() и focus() не работают, какие-либо идеи?

Посмотрите на фрагмент, когда я нажимаю на кнопка «А», список данных не открывается.

function myFunction() {
  document.getElementById('ice-cream-flavors').click();
  document.getElementById('ice-cream-choice').value += 'A';
}
<label for="ice-cream-choice">Choose a flavor:</label>
<input list="ice-cream-flavors" id="ice-cream-choice" name="ice-cream-choice" />

<datalist id="ice-cream-flavors">
    <option value="Chocolate">
    <option value="Coconut">
    <option value="Mint">
    <option value="Strawberry">
    <option value="Vanilla">
</datalist>

<button onclick='myFunction()'>A</button>

1 Ответ

0 голосов
/ 07 февраля 2020

Datalist поддерживается не всеми браузерами и не обрабатывается одинаково. Я рекомендую вам переключиться на что-то типа flexselect: https://rmm5t.github.io/jquery-flexselect/

Это может не дать вам требуемый ответ, но не существует решения, которое будет работать для списка данных (во всех браузерах). Вы можете взломать и заставить его работать на Chrome или Firefox, но даже это будет трудно сделать, потому что Google и Mozilla полностью ограничили использование ненадежных событий / триггеров. Прочитайте об этом здесь: https://www.chromestatus.com/features/5718803933560832 https://www.chromestatus.com/features/6461137440735232

Также initMouseEvent устарела, как и все другие низкоуровневые методы, которые позволили бы вам создать это поведение в прошлом

Я дал этот ответ на другой похожий вопрос всего за несколько минут: go: Как отобразить список данных с javascript?

...