Introducerea elementului datalist HTML5

HTML5 a introdus o serie de elemente noi, printre care unele controale de formă interesante. Un astfel de control util, dar puțin cunoscut este elementul datalist. Să vedem ce poate face pentru noi.

Imaginați-vă că avem un formular și dorim ca un utilizator să introducă un șir de text, cum ar fi numele acestuia, de exemplu. Avem element, ceea ce va permite utilizatorului să scrie tot ce-și doreste. Imaginați-vă apoi că vrem ca utilizatorul să intre în țara sa de reședință; probabil că vom folosi a folosind elementul listă atribut. Luați în considerare următorul marcaj:

    

Avem regulat de control cu ​​un id și noul listă atribut. Acest lucru îi spune browserului să încarce lista de valori sau sugestii din datalist element cu un id corespunzător.

Apoi vine realitatea datalist element cu cele de mai sus id și o colecție de opțiune elemente. Acesta este modul în care valorile sunt atașate la intrare Control.

Când rulați acest lucru în browser, vom vedea o casetă de text normală, atunci când începem să tastăm (sau apăsați tasta săgeată în jos, care funcționează în Firefox și Chrome, dar nu în Opera) apare lista completă sau filtrată. Pe măsură ce tastăm, vor fi afișate doar opțiunile relevante, la fel ca și în cazul în care caseta Căutare Google afișează sugestii. Fiți conștient de faptul că există variații de comportament ușoare de la browser la browser.

Potrivit site-ului oficial al W3C, datalist pot fi utilizate cu:

  • Dată și oră (inclusiv luna etc.), Gama și mai mult.

Mai multe atribute

Putem lua opțiunile cu un pas mai departe prin adăugarea a eticheta atribut, ca în unele dintre elementele de mai jos:

    

Exact modul în care aceste etichete sunt afișate și manipulate depinde de browser - aruncați o privire la quirks secțiune mai jos pentru a vedea cum.


Poate fi folosit chiar acum?

Suportul browserului pentru datalist a rămas îngust până de curând. Acum, IE 10+, Firefox 4+, Chrome și Opera îl suportă (încă nu există un Safari). Este, de asemenea, susținută de Opera Mobile și Firefox pentru Android. Aruncați o privire la această captură de ecran care afișează starea curentă listată de caniuse.com:

Browserele mai vechi vor ignora automat elementul datalist.

Suportul global menționat este de 48,36%. Probabil că nu este așa de bun, dar vestea pozitivă este că browserele mai vechi vor ignora automat elementul datalist, oferindu-ne o experiență grațios degradantă. Aceasta este de fapt adevărată pentru toate noile elemente de formă HTML5. Dacă este necesar suport pentru browsere mai vechi, autocompleta jQuery poate fi utilizată ca rezervă.


ciudateniile

Deoarece asistența extinsă pentru browser este recentă, există interpretări previzibile de către furnizori. Firefox și Chrome utilizează tema OS pentru a modela opțiunile de listă, în timp ce Opera va moșteni anumite stiluri (culoare, font-familie) din intrare camp. În afară de asta, uitați stilul elementului datalist cu CSS.

De asemenea, comportamentul variază în funcție de modul în care sunt filtrate valorile. Fiecare browser gestionează lista în mod diferit atunci când eticheta și valoare atributele opțiune sunt utilizate.

De exemplu, Opera va filtra pe baza atât a valorii cât și a etichetei. "de A" și de "Brac" vor reveni la "Bracket" în cazul nostru.

Cu toate acestea, Chrome va ignora eticheta. "de către A" nu va returna nici un rezultat, de exemplu, în timp ce "Brac" va.

Firefox afișează numai eticheta dacă este definită. "de A" se va întoarce "de Adobe", dar "Brackets" nu mai există deloc!


Concluzie

Există destule posibilități de îmbunătățire în ceea ce privește implementarea, dar, în general, acesta este un plus de bun venit în lumea web. Sper că acest lucru ți-a adus apetitul!


Resurse suplimentare

  • Polyfill pentru Datalist de Chris Coyier
  • Proiect de specificație pentru W3C
  • Suport pentru browser pe caniuse.com