Z technicznego punktu widzenia są zupełnie inne. <datalist>
jest abstrakcyjnym zbiornikiem opcji dla innych elementów. W twoim przypadku używałeś go z, <input type="text"
ale możesz również używać go z zakresami, kolorami, datami itp. Http://demo.agektmr.com/datalist/
Jeśli używasz go z wprowadzaniem tekstu, jako rodzaj autouzupełniania, to naprawdę pytanie brzmi: Czy lepiej jest użyć swobodnego wprowadzania tekstu, czy z góry określonej listy opcji? W takim razie myślę, że odpowiedź jest nieco bardziej oczywista.
Jeśli skupimy się na użyciu <datalist>
jako listy opcji dla pola tekstowego, oto kilka konkretnych różnic między tym a polem wyboru:
<datalist>
Pole tekstowe karmione ma jeden ciąg zarówno etykiety wyświetlacza i prześlij. Pole wyboru może mieć inną wartość przesłania niż etykieta wyświetlania <option value='ie'>Internet Explorer</option>
.
<datalist>
Pole tekstowe karmione nie obsługuje <optgroup>
znacznika do organizowania wyświetlacz.
- Nie możesz ograniczyć użytkownika do listy opcji w
<datalist>
taki sam sposób, jak możesz za pomocą pliku <select>
.
- Onchange wydarzenie działa inaczej. W
<select>
elemencie zdarzenie onchange jest wywoływane natychmiast po zmianie, podczas gdy <input type="text"
w przypadku zdarzenia jest uruchamiane po utracie aktywności elementu lub naciśnięciu klawisza Enter.
<datalist>
ma naprawdę nierówną obsługę w różnych przeglądarkach. Sposób wyświetlania wszystkich dostępnych opcji jest niespójny, a od tego momentu sytuacja tylko się pogarsza.
Moim zdaniem ostatni punkt jest naprawdę duży. Ponieważ MUSISZ mieć bardziej uniwersalną rezerwę autouzupełniania, prawie nie ma powodu, aby przechodzić przez kłopoty z konfiguracją pliku <datalist>
. Ponadto wszelkie przyzwoite wtyczki autouzupełniania pozwolą na styl wyświetlania twoich opcji, co <datalist>
nie działa. Gdyby <datalist>
zaakceptować <li>
elementy, którymi można by manipulować w dowolny sposób, byłoby naprawdę świetnie! Ale nie.
O ile wiem, <datalist>
wyszukiwanie jest dokładnym dopasowaniem od początku ciągu. Więc gdybyś <option value="internet explorer">
szukał hasła „eksplorator”, nie uzyskałbyś żadnych wyników. Większość wtyczek autouzupełniania wyszukuje w dowolnym miejscu tekstu.
Użyłem tylko <datalist>
szybkiego i leniwego pomocnika dla wygody na niektórych stronach wewnętrznych, na których wiem ze 100% pewnością, że użytkownicy mają najnowszą wersję przeglądarki Chrome lub Firefox i nie będą próbowali podawać fałszywych wartości. W każdym innym przypadku trudno jest polecić korzystanie z programu <datalist>
ze względu na bardzo słabą obsługę przeglądarki.