Pagina principala » UI / UX » Cum de a crea un simplu număr de telefon Picker

    Cum de a crea un simplu număr de telefon Picker

    Numere de telefon, pe lângă nume și e-mailuri, sunt cele mai frecvent utilizate informații de contact în formularele online. Câmpurile cu numere de telefon sunt, de obicei, proiectate într-un mod care necesită utilizatorii să introducă numerele utilizând tastatura lor. Această metodă duce frecvent la introducerea incorectă a datelor.

    La reducerea erorilor de intrare ale utilizatorilor și pentru a îmbunătăți experiența utilizatorilor site-ului dvs., puteți crea o GUI care le permite utilizatorilor să introducă rapid numărul lor de telefon, într-un mod similar cu cel al selectatorilor de date.

    În acest tutorial, veți vedea cum să adăugați un simplu selector de număr de telefon într-un câmp de introducere. Vom folosi HTML5, CSS3 și JavaScript pentru a ajunge la GUI pe care îl puteți vedea și testa în demo-ul de mai jos. De asemenea, vom folosi expresii regulate pentru a vă asigura că utilizatorii introduc cu adevărat un număr de telefon valid.

    1. Creați câmpul Număr de telefon

    Primul, creați un câmp de introducere cu o pictogramă de pe dreapta, care va deschide ecranul de apelare la clic. Pictograma de formare arată doar ca 9 cutii neagră, aranjate 3 la 3, trebuie să vă placă ceea ce vedeți pe un telefon obișnuit.

    Eu folosesc tel tipul de intrare pentru semantica HTML5 corectă, dar puteți utiliza și text tipul de intrare, dacă doriți.

     
    Baza HTML a selectorului de numere de telefon
    2. Creați ecranul de apelare

    apelați ecranul este o grilă de numere de la 0 la 9 plus câteva caractere speciale. Se poate face cu fie un HTML

    sau JavaScript.

    Aici, vă vom arăta cum să creați tabelul cu ecranul de apelare în JavaScript. Puteți, bineînțeles, să adăugați tabelul direct în codul sursă HTML dacă îl preferați în acest fel.

    Mai întâi, creați un nou 'masa' element în DOM folosind createElement () metodă. De asemenea, da-i 'Dial' identificator.

     / * Crearea ecranului dial * / var dial = document.createElement ('table'); dial.id = 'dial'; 

    Adauga o pentru buclă pentru a introduce cele patru rânduri ale mesei cu ea. Apoi, pentru fiecare rând, alerga alta pentru buclă pentru a adăuga trei celule pe rând. Marchează fiecare celulă cu 'DialDigit' clasă.

     pentru (var rowNum = 0; rowNum < 4; rowNum++)  var row = dial.insertRow(rowNum); for (var colNum = 0; colNum < 3; colNum++)  var cell = row.insertCell(colNum); cell.className = 'dialDigit'; cell.textContent = ((colNum + 1) + (rowNum * 3)).toString();   

    Cei doi pentru buclele de mai sus calculează cifrele care intră în celulele tabelului cu cifre - valorile valorilor cell.textContent proprietate - în modul următor:

     (0 + 3) = 1 (1 + 1) + (0 * 3) = 2 (2 + 1) 0 * 3) = 3 / * al doilea rând * / (0 + 1) + (1 * 3) = 4 (1 + 1) + (1 * 3) 6 / * etc. * / 

    Ultimul rând este diferit, deoarece constă din două caractere speciale, - și + care sunt utilizate în formatele numărului de telefon pentru a identifica codurile regionale și cifra 0.

    Pentru a crea ultimul rând pe ecranul de apelare, adăugați următoarele dacă declarație spre interior pentru buclă.

     pentru (var rowNum = 0; rowNum < 4; rowNum++)  var row = dial.insertRow(rowNum); for (var colNum = 0; colNum < 3; colNum++)  /* if last row */ if (rowNum === 3)  cell = row.insertCell(colNum); cell.textContent = '-'; cell.className = 'dialDigit'; cell = row.insertCell(colNum); cell.textContent = '0'; cell.className = 'dialDigit'; cell = row.insertCell(colNum); cell.textContent = '+'; cell.className = 'dialDigit'; break;  cell = row.insertCell(colNum); cell.className = 'dialDigit'; cell.textContent = ((colNum + 1) + (rowNum * 3)).toString();   

    ecranul de selecție este acum complet, adăugați-l la #dialWrapper Contul HTML pe care l-ați creat în Pasul 1 utilizând două metode DOM:

    1. querySelector () metoda de a selectați recipientul
    2. appendChild () metoda de a adăugați ecranul de apelare - ținută în cadran variabilă - la recipient
     document.querySelector ( '# dialWrapper') appendChild (dial).; 
    Formați tabelul de ecran fără stil
    3. Stilul ecranului de apelare

    Pentru ao face mai atractivă, stilul ecranului de apelare cu CSS.

    Nu trebuie neapărat să rămâi cu stilul meu, dar nu uita să adăuga utilizator-selectați: none; proprietate la #dial recipient astfel încât în ​​timp ce utilizatorul face clic pe cifre, textul nu vor fi selectate de cursor.

     #dial width: 200px; înălțime: 200px; colaps de frontieră: colaps; text-align: centru; poziția: relativă; -ms-user-select: nici unul; -webkit-user-select: niciunul; -moz-user-select: nici unul; user-select: none; culoare: # 000; box-shadow: 0 0 6px # 999; . dialDigit border: 1px solid #fff; cursor: pointer; fundal-culoare: rgba (255,228,142, .7);  
    Ecranul cu ecranare cu styling
    4. Afișați Ecranul Dial pe Clic

    Mai întâi, adăugați vizibilitate: ascunse; stil pentru a #dial în CSS de mai sus la ascundeți ecranul de apelare în mod implicit. acesta va fi afișat numai când utilizatorul face clic pe pictograma de apelare.

    Apoi, adăugați un handler de evenimente pentru clicuri pe pictograma de apelare cu JavaScript la comutați vizibilitatea a ecranului de formare.

    Pentru a face acest lucru, trebuie să utilizați cele menționate mai sus querySelector () si addEventListener () metode. Acesta din urmă atașează un eveniment clic la pictograma de apelare și apelurile personalizate toggleDial () funcţie.

    toggleDial () funcţie schimbă vizibilitatea din ecranul de formare de la ascuns la vizibil și înapoi.

     document.querySelector ('# dialIcon') addEventListener ("clic", comutareDesculare); funcția toggleDial () dial.style.visibility = dial.style.visibility === 'ascuns' || dial.style.visibility === "? 'vizibil': 'ascuns'; 
    5. Adăugați funcționalitatea

    Adăugați o funcție personalizată introduce cifre în câmpul numărului de telefon pe clicul celulelor ecranului de formare.

    formeaza numarul() funcţie adaugă cifrele unul câte unul la textContent proprietatea câmpului de introducere marcat cu #phoneNo identificator.

     phoneNo = document.querySelector ('# phoneNo'); funcția dialNumber () phoneNo.value + = this.textContent;  dialDigits = document.querySelectorAll ('. dialDigit'); pentru (var i = 0; i < dialDigits.length; i++)  dialDigits[i].addEventListener('click', dialNumber);  

    Acum, aveți un a ecran de lucru pentru a introduce câmpul numărului de telefon.

    Pentru a ține pasul cu CSS, schimbați culoarea de fundal a cifrelor :planare și :activ (când utilizatorul face clic pe el).

     .dialDigit: mutați background-color: rgb (255,228,142);  .dialDigit: activ background-color: # FF6478;  
    6. Adăugați Validarea expresiilor regulate

    Adauga o simpla validare a registrului pentru a valida numărul de telefon în timp ce utilizatorul introduce cifrele în câmpul de introducere. În conformitate cu regulile de validare pe care le folosesc, numărul de telefon poate începe numai cu o cifră sau cu + caracter, și să accepte - caracter după aceea.

    Puteți vedea vizualizarea expresiei mele regulate pe ecranul de mai jos creat cu aplicația Debuggex.

    Regex vizualizare de la debuggex.com

    De asemenea, puteți valida numărul de telefon conform formatului de număr de telefon al țării sau regiunii dvs..

    Creați un nou obiect Expresie regulată și păstrați-l în model variabil. Creați, de asemenea, un personalizat valida() care verifică dacă numărul de telefon introdus respectă expresia regulată, și dacă este cel puțin 8 caractere lungime.

    Când intrarea nu este validată, valida() funcția trebuie să da feedback către utilizator.

    Sunt adăugând o margine roșie la câmpul de intrare atunci când intrarea este nevalidă, dar puteți informa utilizatorul în alte moduri, de exemplu, cu mesaje de eroare.

     model = nou RegExp ("^ (\\ + \\ d 1,2)? (\\ d + \\ - * \\ d +) * $"); funcția validează (txt) // cel puțin 8 caractere pentru un număr de telefon valabil nr. dacă (! pattern.test (txt) || txt.length < 8)  phoneNo.style.border = '2px solid red'; return false;  else phoneNo.style.border = 'initial'; return true;  
    7. Efectuați Validarea

    valida() funcții trebuie să fie numit pentru a efectua validarea. Sunați-l din formeaza numarul() funcția pe care ați creat-o la pasul 5 pentru a valida valoarea phoneNo variabil.

    Rețineți că am adăugat, de asemenea validare suplimentară pentru caracterele maxime (nu poate fi mai mare de 15) prin utilizarea unui dacă afirmație.

     funcția dialNumber () var val = phoneNo.value + this.textContent; // caractere maxime permise, 15 dacă (val.length> 15) return false; validarea (val); phoneNo.value = val;  

    Ta selector de numere de telefon este acum gata, verificați demo-ul final de mai jos.

    © Savtec
    Informații utile și sfaturi de dezvoltare web. Programare, design web, CSS, HTML, JAVASCRIPT. Configurați și reinstalați WINDOWS. Crearea site-urilor și aplicațiilor de la zero.