Opcje datalist po jednym kliknięciu

Opcje datalist po jednym kliknięciu
Gouda105
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 487
0

Witam,
pewnie jak wszyscy wiemy jak dodamy <input list="nazwa"> (datalist) i podwójnie naciśniemy to pokaże się lista z <option>, a czy da się zrobić, aby pojawiała się po jednym kliknięciu? Wolałbym uniknąć JS (wiem, że łatwo jest to w nim zrobić, sam umiem, ale nie wybieram tej opcji, bo nie chcę dawać za dużo kodu).

cerrato
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 9012
3

O ile się orientuję (jeśli jestem w błędzie to bardzo proszę o sprostowanie i pokazanie rozwiązania) to nie ma takiej opcji, jedynie można powalczyć JavaScriptem. Obecnie ta kontrolka się zachowuje tak, że pierwsze kliknięcie przenosi na nią focus, a dopiero kliknięcie w kontrolkę z przydzielonym focusem powoduje rozwinięcie listy z sugestiami.

cerrato
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 9012
1

A czy da się ustawić domyślnie na focus?

Kopiuj
 <html>
 <body onload="document.getElementById('zrob_mi_focus').focus()">
 
 <input list="potrawy" id="zrob_mi_focus">
<datalist id="potrawy">
  <option value="kaszanka">
  <option value="schabowy">
  <option value="pomidorowa">
  <option value="denaturat">
  <option value="pieczywo razowe">
</datalist> 
</body>
</html>

Jest jeszcze jedna opcja - dodać to elementu input atrybut autofocus - wtedy wywalasz JS i masz coś w stylu

Kopiuj
 <input list="potrawy" id="zrob_mi_focus" autofocus>
Silv
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
2

@Gouda105: jak zauważyłem, liczba kliknięć, by pokazała się lista, zależy (też) od przeglądarki (lub samego silnika renderowania):

  • Firefoks (66.0.3) oraz GNU IceCat (60.6.1esr) wymagają dwóch kliknięć;
  • Chrome (73) oraz Chromium (73) wymagają jednego kliknięcia.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.