Materiale pentru învățarea materialelor Lite câmpuri de text

În continuare, în cadrul seriei noastre de învățare a insulelor și ieșirilor din Material Design Lite (MDL), vom examina componenta Fields. Un câmp de text ar putea fi folosit pentru orice element dintr-un formular de căutare, un formular de comentariu sau un formular de contact și adesea îl vedem în legătură cu elementul de buton.

De fapt, componenta câmpurilor de text din MDL este similară cu componenta butonului; este o îmbunătățire a unui element html standard pentru ao aduce în linie cu designul general al materialului estetic și specificații. Încă o dată, înainte de a începe, va trebui să includeți bibliotecile MDL - foile de stil și JavaScript - în documentul dvs. cap.

   

Să începem cu câteva lucruri de bază.

Câmp de text de bază

Pentru a implementa componenta de câmp text, începem cu un gol div cu mdl-textfield și mdl-js-textfield clase, înfășurat într - un formă element. Dacă ați urmat posturile noastre anterioare din această serie, trebuie să fiți deja familiarizați cu modelul de denumire a clasei din MDL. În acest caz, mdl-textfield clasa aplică îmbunătățirile vizuale din CSS, în timp ce mdl-js-textfield aplică comportamentul dinamic prin JavaScript.

În cadrul div, adăugăm un intrare element (sau poate a textarea) și o etichetă (care este necesară) împreună cu clasa relevantă necesară pentru aplicarea stilurilor.

Cam despre asta e; tocmai am construit un câmp de introducere a textului de bază cu componentă de câmp text MDL!

Probleme potențiale

Este demn de remarcat faptul că mdl-textfield__input clasa pe care am adăugat-o la intrare elementul va funcționa bine numai când este aplicat unui tip de introducere bazat pe text, cum ar fi text, parola, e-mail, tel, URL-ul, și căutare. Aplicarea clasei la un curs intrare element de tip culoare, Data, sau fişier ar putea genera un rezultat foarte ciudat.

În plus, textul etichetei va apărea la fel de ciudat dacă adăugăm și text de înlocuire:

Câmpul de introducere cu substituent

Etichetă plutitoare

Putem îmbunătăți elementul de intrare cu Etichetă plutitoare. Pe măsură ce utilizatorul se concentrează pe câmpul de intrare, eticheta va pluti în sus, afară din calea cursorului. Eticheta plutitoare este un model din ce în ce mai obișnuit în proiectarea formelor, în special în peisajul mobil în care spațiul limitat este îngrijorător.

MDL a făcut foarte ușor acest model de design. Înapoi la codul HTML anterior, trebuie să adăugăm mdl-textfield - plutitor eticheta clasa la div recipient.

Bingo! Câmpul de introducere a textului ar trebui acum să fie mai plăcut vizual cu eticheta plutitoare:

Câmp de intrare extensibil

Câmp de intrare extensibil este un alt model comun de design pe care îl putem implementa în MDL. Mai întâi vedem intrarea ca pictogramă. După ce se face clic, se va extinde într-un câmp de introducere. De obicei, acest tip de design se aplică pentru căutarea intrărilor.

Pentru a face ca intrarea noastră anterioară să fie extinsă, trebuie să adăugăm mdl-textfield - expandabil clasa la div container. De asemenea, înfășurăm intrare element și eticheta cu un nou div cu mdl-textfield__expandable-titular clasă anexată. În urma acestui flux de lucru, schimbăm de asemenea intrare tip, eticheta de text, precum și atributele aferente pentru a specifica "căutare".

Apoi, vom crea un buton în afara mdl-textfield__expandable-titular, folosind un eticheta element care indică intrarea.

Validarea intrărilor

Datele de securitate și de dezintoxicare sunt esențiale în ceea ce privește formele. Nu vrem ca utilizatorii noștri să trimită înregistrări cu conținut incorect sau chiar rău intenționat. Prin urmare, trebuie să evaluăm intrarea utilizatorului în câmpul de introducere pentru a se conforma tipului de intrare. În cazul în care intrare este de e-mail tip, intrarea trebuie să respecte un format de e-mail - ar trebui să conțină @ și se termină cu o TLD (domeniu de nivel superior).

Din fericire, MDL ne ajută să ieșim din cutie. Nu trebuie să adăugăm marcaj suplimentar sau clase. Setați intrarea cu un tip corespunzător și va roti subliniați roșu dacă formatul de intrare nu aderă la tipul de intrare.

O eroare

Dar putem, de asemenea, să setăm propriul standard de formatare și să furnizăm, de asemenea, un element vizual care afișează un mesaj de eroare. De exemplu:

MDL mesaj de eroare de intrare

Pentru a afișa o notificare de eroare, trebuie să furnizăm mai întâi limite la ce pot intra utilizatorii în intrare element prin HTML model atribut. Atributul de model are o Expresie Regulară (Regex) care va evalua și valida intrarea utilizatorului.

În acest caz, aș dori ca intrarea pentru numele de utilizator să fie alfabetică, fără spații. Astfel, vom specifica model atribuiți cu următorul Regex: [A-Z, a-z] *.

Notă: puteți găsi modele comune Regex în HTML5Pattern, cum ar fi unul pentru validarea e-mailului, parolei, telefoanelor, codurilor poștale și datelor.

Apoi, adăugăm mesajul de eroare de sub etichetă folosind a deschidere element cu mdl-textfield__error. De asemenea, este posibil să aplicați reguli de stil pentru a ajusta poziția și alinierea conținutului.

Numai alfabetul și fără spații, te rog!

Suntem cu toții pregătiți! Acum, intrarea ar trebui să arunce un mesaj de eroare sub intrare și să o evidențieze cu roșu, dacă utilizatorul introduce numere, caractere speciale sau spații. Încearcă:

Înfășurarea în sus

După cum tocmai am descoperit, componenta câmpurilor text MDL ne face ușor să implementăm câmpuri de intrare angajate cu modele de design utile, cum ar fi eticheta plutitoare și câmpul de intrare extensibil. De asemenea, am descoperit că este ușor să adăugați un mesaj de eroare în cazul formatării incorecte.

Următorul tutorial ar trebui să fie o tranșă interesantă din această serie. Vom analiza o stea în ascensiune printre elementele UI Card. Rămâneți aproape!