Početna » UI / UX » Kako stvoriti jednostavan telefonski broj Picker

    Kako stvoriti jednostavan telefonski broj Picker

    Brojevi telefona, osim imena i e-pošte, najčešće se koriste kontaktne informacije u online obrascima. Polja telefonskog broja obično su dizajnirana tako da korisnici moraju unijeti brojeve u tipkovnicu. Ova metoda često rezultira netočnim unosom podataka.

    Do smanjite pogreške pri unosu korisnika i poboljšati korisničko iskustvo vaše web-lokacije, možete stvoriti GUI koji korisnicima omogućuju da brzo unesu svoj telefonski broj, na način koji je sličan onima za skupljanje datuma.

    U ovom vodiču vidjet ćete kako u polje za unos unesite jednostavan odabir broja telefona. Koristit ćemo HTML5, CSS3 i JavaScript kako bismo došli do GUI-a koji možete vidjeti i testirati u demo-verziji u nastavku. Koristit ćemo i uobičajene izraze kako bismo bili sigurni da korisnici stvarno unesu važeći telefonski broj.

    1. Stvorite polje Broj telefona

    Prvi, stvorite polje za unos s ikonom za biranje na desnoj strani koja će otvoriti zaslon za biranje na klik. Ikona za biranje izgleda samo kao 9 crnih kutija, raspoređenih po 3, što se mora svidjeti onome što vidite na običnom telefonu.

    Koristim tel tip unosa za pravilnu HTML5 semantiku, ali možete koristiti i tekst ako želite.

     
    HTML baza za odabir broja telefona
    2. Stvorite zaslon za biranje

    zaslon za biranje je mreža brojeva od 0 do 9 plus neki posebni znakovi. Može se napraviti s ili HTML

    ili JavaScript.

    Ovdje ću vam pokazati kako stvoriti zaslonsku tablicu za biranje u JavaScriptu. Možete, naravno, dodati tablicu izravno u HTML izvorni kôd ako vam se tako sviđa.

    Prvo stvorite novo 'stol' element u DOM pomoću createElement () metoda. Također mu dajte „Biranje” identifikator.

     / * Kreirajte zaslon za biranje * / var dial = document.createElement ('table'); dial.id = 'biraj'; 

    Dodati za petlja da biste s njim umetnuli četiri retka tablice za biranje. Zatim, za svaki redak, pokrenuti drugu za petlja kako bi dodali tri stanice po redu. Označite svaku ćeliju s 'DialDigit' klasa.

     za (var rowNum = 0; redNum < 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();   

    Dva za petlje iznad izračunati znamenke koje idu u ćelije bira tablice - vrijednosti cell.textContent vlasništvo - na sljedeći način:

     (colNum + 1) + (redNum * 3) / * prvi red * / (0 + 1) + (0 * 3) = 1 (1 + 1) + (0 * 3) = 2 (2 + 1) + ( 0 * 3) = 3 / * drugi red * / (0 + 1) + (1 * 3) = 4 (1 + 1) + (1 * 3) = 5 (2 + 1) + (1 * 3) = 6 / * itd. * / 

    Posljednji redak je drukčiji, kako se sastoji dva posebna znaka, - i + koji se koriste u formatima telefonskih brojeva za identifikaciju regionalnih kodova i znamenki 0.

    Da biste kreirali posljednji red na zaslonu za biranje, dodajte sljedeće ako izjavu unutarnjem za petlja.

     za (var rowNum = 0; redNum < 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();   

    zaslon za biranje je sada dovršen, dodajte ga u #dialWrapper HTML spremnik koji ste izradili u koraku 1 pomoću dvije DOM metode:

    1. querySelector () metoda odaberite spremnik
    2. appendChild () metoda dodajte zaslon za biranje - održava u nazvati varijabla - u spremnik
     document.querySelector ( '# dialWrapper') appendChild (biranje). 
    Zaslon za biranje zaslona bez stila
    3. Podesite zaslon za biranje

    Da bi bio privlačniji, namjestite zaslon za biranje s CSS-om.

    Ne morate nužno držati se mog stila, ali ne zaboravite dodati korisnički odaberite: none; imovine #dial kontejner tako da dok korisnik klikne na znamenke, tekst neće biti odabran pomoću pokazivača.

     #dial width: 200px; visina: 200px; border-collapse: kolaps; poravnavanje teksta: centar; pozicija: relativna; -ms-user-select: none; -webkit-user-select: nema; -moz-user-select: nema; user-select: nema; boja: # 000; kutija-sjena: 0 0 6px # 999;  .dialDigit border: 1px solid #fff; pokazivač: pokazivač; pozadinska boja: rgba (255,228,142, .7);  
    Biranje zaslonske tablice sa stylingom
    4. Prikažite zaslon za biranje na klik

    Prvo dodajte visibility: hidden; pravilo stila #dial u gornjem CSS-u do sakriti zaslon za biranje prema zadanim postavkama. prikazivat će se samo kada korisnik klikne na ikonu za biranje.

    Zatim dodajte rukovatelj događajima klik ikoni za biranje s JavaScriptom do prebacivanje vidljivosti zaslona za biranje.

    Da biste to učinili, morate koristiti gore spomenuto querySelector () i addEventListener () metode. Potonji dodaje događaj klikom na ikonu za biranje i poziva običaj toggleDial () funkcija.

    toggleDial () funkcija mijenja vidljivost zaslona za biranje od skrivenog do vidljivog i natrag.

     document.querySelector ('# dialIcon') addEventListener ('klik', toggleDial); funkcija toggleDial () dial.style.visibility = dial.style.visibility === 'hidden' || dial.style.visibility === "?" vidljivo ":" skriveno "; 
    5. Dodajte funkcionalnost

    Dodajte prilagođenu funkciju unosi znamenke u polje telefonskog broja klikom na ćelije zaslona za biranje.

    pozivni broj() funkcija dodaje znamenke jednu po jednu prema textContent svojstvo polja za unos označeno s #phoneNo identifikator.

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

    Sada, vi imate radni zaslon za biranje za unos broja telefonskog broja.

    Da biste pratili CSS, promijenite boju pozadine znamenki u njihovoj : hover i :aktivan (kada korisnik klikne na njega) navodi.

     .dialDigit: hover boja pozadine: rgb (255,228,142);  .dialDigit: aktivno pozadinska boja: # FF6478;  
    6. Dodajte validaciju regularnog izraza

    Dodati jednostavna regex validacija za provjeru valjanosti telefonskog broja dok je korisnik unosi znamenke u polje za unos. Prema pravilima za provjeru valjanosti koje koristim, telefonski broj može započeti samo s znamenkom ili s brojem + i prihvatite znak - nakon toga.

    Možete vidjeti vizualizaciju mog uobičajenog izraza na donjoj slici koja je napravljena pomoću aplikacije Debuggex.

    Regex vizualizacija s debuggex.com

    Telefonski broj možete provjeriti i prema formatu telefonskog broja vaše zemlje ili regije.

    Stvorite novi objekt regularnog izraza i pohranite ga u uzorak promjenjiva. Također izradite običaj potvrditi () koja provjerava je li unesen telefonski broj odgovara regularnom izrazu, i ako je najmanje 8 znakova.

    Kada unos ne potvrdi, potvrditi () funkcija treba dati povratnu informaciju korisniku.

    Ja sam dodavanjem crvene granice u polje za unos kada je unos nevažeći, ali možete obavijestiti korisnika na druge načine, na primjer, s porukama o pogreškama.

     pattern = new RegExp ("^ (d) 1,2)?" (+) \ t funkcija validate (txt) // najmanje 8 znakova za važeći broj telefona if (! pattern.test (txt) || txt.length < 8)  phoneNo.style.border = '2px solid red'; return false;  else phoneNo.style.border = 'initial'; return true;  
    7. Izvršite provjeru valjanosti

    potvrditi () funkcije treba pozvati radi provjere valjanosti. Nazovite je iz pozivni broj() koju ste stvorili u koraku 5 kako biste potvrdili vrijednost phoneNo varijabla.

    Napominjem da sam dodao i dodatna provjera valjanosti za maksimalni broj znakova (ne može biti više od 15) pomoću znaka ako izjava.

     funkcija dialNumber () var val = phoneNo.value + this.textContent; // maksimalno dopuštenih znakova, 15 ako (val.length> 15) vraća false; potvrditi (Val); phoneNo.value = val;  

    vaš odabir broja telefona je sada spreman, pogledajte konačni demo u nastavku.

    © Savtec
    Korisni podaci i savjeti za web-razvoj. Programiranje, web dizajn, CSS, HTML, JAVASCRIPT. Konfigurirajte i ponovno instalirajte WINDOWS. Izrada web stranica i aplikacija ispočetka.