Homepage » UI / UX » Come creare un semplice selettore di numeri di telefono

    Come creare un semplice selettore di numeri di telefono

    Numeri di telefono, oltre ai nomi e alle e-mail, sono le informazioni di contatto più utilizzate nei moduli online. I campi del numero di telefono sono generalmente progettati in modo da richiedere agli utenti di digitare i numeri usando le loro tastiere. Questo metodo spesso porta a dati inaccurati.

    A ridurre gli errori di input dell'utente e migliorare l'esperienza utente del tuo sito, puoi crearne uno GUI che consente agli utenti di inserire rapidamente il proprio numero di telefono, in un modo simile ai raccoglitori di date.

    In questo tutorial, vedrai come aggiungi un semplice selettore di numeri telefonici a un campo di input. Useremo HTML5, CSS3 e JavaScript per accedere alla GUI che puoi vedere e provare nella demo qui sotto. Metteremo anche le espressioni regolari in uso per assicurarci che gli utenti inseriscano realmente un numero di telefono valido.

    1. Creare il campo del numero di telefono

    Primo, crea un campo di input con un'icona a forma di quadrante sulla destra che aprirà la schermata di composizione al clic. L'icona del quadrante assomiglia a 9 scatole nere, disposte 3 per 3, deve piacere a quello che vedi su un normale telefono.

    Sto usando il tel tipo di input per la corretta semantica HTML5, ma puoi anche usare il testo tipo di input se lo desideri.

     
    Base HTML del selettore di numeri di telefono
    2. Creare la schermata di composizione

    Il quadrante è una griglia di numeri da 0 a 9 più alcuni caratteri speciali. Può essere fatto con o un HTML

    o JavaScript.

    Qui, ti mostrerò come creare la tabella dial-dial in JavaScript. Puoi, naturalmente, aggiungere la tabella direttamente nel codice sorgente HTML se preferisci in questo modo.

    Innanzitutto, creane uno nuovo 'tavolo' elemento nel DOM usando il createElement () metodo. Dagli anche il 'comporre' identificatore.

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

    Aggiungere un per ciclo continuo per inserire le quattro righe del quadrante con esso. Quindi, per ogni riga, eseguirne un altro per ciclo continuo per aggiungere tre celle per riga. Segna ogni cella con il 'DialDigit' classe.

     for (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();   

    Il due per i cicli sopra calcolano le cifre che entrano nelle celle della tabella di composizione - i valori di cell.textContent proprietà - nel modo seguente:

     (colNum + 1) + (rowNum * 3) / * prima riga * / (0 + 1) + (0 * 3) = 1 (1 + 1) + (0 * 3) = 2 (2 + 1) + ( 0 * 3) = 3 / * seconda riga * / (0 + 1) + (1 * 3) = 4 (1 + 1) + (1 * 3) = 5 (2 + 1) + (1 * 3) = 6 / * ecc. * / 

    L'ultima riga è diversa, in quanto è composta da due personaggi speciali, - e + che vengono utilizzati nei formati dei numeri di telefono per identificare i codici regionali e la cifra 0.

    Per creare l'ultima riga sulla schermata di composizione, aggiungere quanto segue Se dichiarazione all'intimo per ciclo continuo.

     for (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();   

    Il la schermata di composizione è ora completa, aggiungilo al #dialWrapper Contenitore HTML creato nel passaggio 1 utilizzando due metodi DOM:

    1. il querySelector () metodo a seleziona il contenitore
    2. il appendChild () metodo a aggiungere la schermata di composizione - tenuto nel comporre variabile - al contenitore
     document.querySelector ( '# dialWrapper') appendChild (dial).; 
    Dial Screen Table senza Styling
    3. Modellare la schermata di composizione

    Per renderlo più attraente, stile la schermata di composizione con CSS.

    Non devi necessariamente attenermi al mio stile, ma non dimenticarti di farlo Inserisci user-selezionare: none; proprietà al #comporre contenitore in modo che mentre l'utente fa clic sulle cifre, il testo non verrà selezionato dal cursore.

     #dial width: 200px; altezza: 200 px; border-collapse: collapse; allineamento del testo: centro; posizione: relativa; -ms-user-select: none; -webkit-user-select: none; -moz-user-select: none; selezione utente: nessuna; colore: # 000; box-shadow: 0 0 6px # 999;  .dialDigit border: 1px solid #fff; cursore: puntatore; background-color: rgba (255,228,142, .7);  
    Dial Screen Table con stile
    4. Mostra la schermata di composizione al clic

    Innanzitutto, aggiungi il visibility: hidden; regola di stile a #comporre nel CSS sopra a nascondi la schermata di composizione per impostazione predefinita. verrà mostrato solo quando l'utente fa clic sull'icona del quadrante.

    Quindi, aggiungi un gestore di eventi click all'icona di composizione con JavaScript a attiva la visibilità della schermata di composizione.

    Per fare ciò, è necessario utilizzare il suddetto querySelector () e il addEventListener () metodi. L'ultimo allega un evento click all'icona del quadrante e chiama l'abitudine toggleDial () funzione.

    Il toggleDial () funzione cambia la visibilità della schermata di composizione da nascosta a visibile e viceversa.

     document.querySelector ('# dialIcon'). addEventListener ('click', toggleDial); function toggleDial () dial.style.visibility = dial.style.visibility === 'hidden' || dial.style.visibility === "? 'visible': 'hidden'; 
    5. Aggiungi la funzionalità

    Aggiungi una funzione personalizzata immette le cifre nel campo del numero di telefono al clic delle celle della schermata di composizione.

    Il comporre il numero() funzione aggiunge le cifre una alla volta al textContent proprietà del campo di input contrassegnato con #phoneNo identificatore.

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

    Ora, hai un schermo di composizione funzionante per inserire il campo del numero di telefono.

    Per stare al passo con il CSS, cambia il colore di sfondo delle cifre nella loro : hover e :attivo (quando l'utente fa clic su di esso) afferma.

     .dialDigit: hover background-color: rgb (255,228,142);  .dialDigit: active background-color: # FF6478;  
    6. Aggiungi la convalida dell'espressione regolare

    Aggiungere un semplice convalida regex per convalidare il numero di telefono mentre l'utente immette le cifre nel campo di immissione. In base alle regole di convalida che utilizzo, il numero di telefono può iniziare solo con una cifra o con + carattere, e accetta il - personaggio dopo.

    Puoi vedere la visualizzazione della mia espressione regolare sullo screenshow qui sotto creato con l'app Debuggex.

    Visualizzazione Regex da debuggex.com

    È inoltre possibile convalidare il numero di telefono in base al formato del numero di telefono del proprio paese o regione.

    Crea un nuovo oggetto Espressione regolare e memorizzalo nel modello variabile. Crea anche una personalizzazione convalidare() funzione che controlla se il numero di telefono inserito è conforme all'espressione regolare, e se lo è di almeno 8 caratteri.

    Quando l'input non convalida, il convalidare() la funzione deve fornire un feedback per l'utente.

    sono aggiungendo un bordo rosso al campo di input quando l'input non è valido, ma è possibile informare l'utente in altri modi, ad esempio con messaggi di errore.

     pattern = new RegExp ("^ (\\ + \\ d 1,2)? (\\ d + \\ - * \\ d +) * $"); funzione validate (txt) // almeno 8 caratteri per un numero di telefono valido se (! pattern.test (txt) || txt.length < 8)  phoneNo.style.border = '2px solid red'; return false;  else phoneNo.style.border = 'initial'; return true;  
    7. Eseguire la convalida

    Il convalidare() funzioni deve essere chiamato per eseguire la convalida. Chiamalo dal comporre il numero() funzione creata nel passaggio 5 per convalidare il valore di phoneNo variabile.

    Si noti che ho anche aggiunto un convalida aggiuntiva per i caratteri massimi (non può essere superiore a 15) utilizzando un Se dichiarazione.

     function dialNumber () var val = phoneNo.value + this.textContent; // caratteri massimi consentiti, 15 if (val.length> 15) restituisce false; convalidare (val); phoneNo.value = val;  

    Il tuo selettore del numero di telefono è ora pronto, controlla la demo finale qui sotto.

    © Savtec
    Informazioni utili e suggerimenti per lo sviluppo web. Programmazione, web design, CSS, HTML, JAVASCRIPT. Configurare e reinstallare WINDOWS. Creazione di siti e applicazioni da zero.