Startpagina » UI / UX » Hoe een eenvoudige telefoonnummerkiezer te maken

    Hoe een eenvoudige telefoonnummerkiezer te maken

    Telefoonnummers, naast namen en e-mails, zijn de meest gebruikte contactgegevens in online formulieren. Telefoonnummervelden zijn meestal zo ontworpen dat gebruikers de nummers moeten invoeren bij het gebruik van hun toetsenborden. Deze methode resulteert vaak in onnauwkeurige gegevensinvoer.

    Naar verminder invoerfouten en om de gebruikerservaring van uw site te verbeteren, kunt u een GUI waarmee gebruikers snel hun telefoonnummer kunnen invoeren, op een manier die vergelijkbaar is met datumkiezers.

    In deze zelfstudie ziet u hoe voeg een eenvoudige telefoonnummerkiezer toe aan een invoerveld. We gebruiken HTML5, CSS3 en JavaScript om naar de GUI te gaan die u kunt zien en testen in de onderstaande demo. We zullen ook reguliere expressies gebruiken om ervoor te zorgen dat gebruikers echt een geldig telefoonnummer invoeren.

    1. Maak het veld Telefoonnummer

    Eerste, maak een invoerveld met een kiespictogram aan de rechterkant dat het oproepscherm op klik opent. Het wijzerpictogram ziet er net uit als 9 zwarte vakken, die 3 bij 3 zijn gerangschikt, moeten bevallen wat je op een gewone telefoon ziet.

    Ik gebruik de tel invoertype voor juiste HTML5-semantiek, maar u kunt ook de tekst invoertype als je wilt.

     
    HTML-basis van de telefoonnummerkiezer
    2. Creëer het kiesscherm

    De kies scherm is een raster van cijfers van 0 tot 9 plus enkele speciale karakters. Het kan worden gemaakt met ofwel een HTML

    of JavaScript.

    Hier laat ik u zien hoe u de kiesschermtabel maakt in JavaScript. U kunt de tabel natuurlijk direct in de HTML-broncode toevoegen als u daar de voorkeur aan geeft.

    Maak eerst een nieuw 'tafel' element in de DOM door de createElement () methode. Geef het ook het 'wijzerplaat' identifier.

     / * Creëer kiesscherm * / var dial = document.createElement ('table'); dial.id = 'kiezen'; 

    Voeg een ... toe voor lus om de vier rijen van de kiestabel ermee in te voegen. Vervolgens voor elke rij, een andere uitvoeren voor lus om drie cellen per rij toe te voegen. Markeer elke cel met de 'DialDigit' klasse.

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

    De twee voor loops berekenen hierboven de cijfers die in de cellen van de kiestabel gaan - de waarden van de cell.textContent eigendom - op de volgende manier:

     (colNum + 1) + (rowNum * 3) / * eerste rij * / (0 + 1) + (0 * 3) = 1 (1 + 1) + (0 * 3) = 2 (2 + 1) + ( 0 * 3) = 3 / * tweede rij * / (0 + 1) + (1 * 3) = 4 (1 + 1) + (1 * 3) = 5 (2 + 1) + (1 * 3) = 6 / * etc. * / 

    De laatste rij is anders, omdat deze bestaat uit twee speciale karakters, - en + die worden gebruikt in telefoonnummerformaten om regionale codes en het cijfer te identificeren 0.

    Om de laatste rij naar het belscherm te maken, voegt u het volgende toe als verklaring voor de innerlijke voor lus.

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

    De draaischijf is nu voltooid, voeg het toe aan de #dialWrapper HTML-container die u in stap 1 hebt gemaakt met behulp van twee DOM-methoden:

    1. de querySelector () methode om selecteer de container
    2. de appendChild () methode om het kiesscherm toevoegen - gehouden in de wijzerplaat variabele - naar de container
     document.querySelector ( '# dialWrapper') appendChild (dial).; 
    Kies schermtafel zonder styling
    3. Stijl het kiesscherm

    Om het aantrekkelijker te maken, stijl het wijzerplaatscherm met CSS.

    Je hoeft niet per se bij mijn styling te blijven, maar vergeet dat niet toevoegen user-select: none; eigendom van de #wijzerplaat houder zodat, terwijl de gebruiker op de cijfers klikt, de tekst wordt niet geselecteerd door de cursor.

     #dial width: 200px; hoogte: 200 px; border-collapse: collapse; text-align: center; positie: relatief; -ms-user-select: none; -webkit-user-select: geen; -moz-user-select: none; gebruikersselectie: geen; kleur: # 000; vakschaduw: 0 0 6px # 999;  .dialDigit border: 1px solid #fff; cursor: pointer; achtergrondkleur: rgba (255,228,142, 7);  
    Kies schermtafel met styling
    4. Toon het belscherm bij klikken

    Voeg eerst de visibility: hidden; style rule to #wijzerplaat in de bovenstaande CSS naar verberg het kiesscherm standaard. het wordt alleen weergegeven wanneer de gebruiker op het pictogram van het nummer klikt.

    Voeg vervolgens een klikgebeurtenishandler toe aan het kiespictogram met JavaScript naar schakel de zichtbaarheid in van het kiesscherm.

    Om dit te doen, moet u het bovengenoemde gebruiken querySelector () en de addEventListener () methoden. Het laatste maakt een klikgebeurtenis aan naar het pictogram en bel de aangepaste toggleDial () functie.

    De toggleDial () functie verandert de zichtbaarheid van het kiesscherm van verborgen naar zichtbaar en terug.

     document.querySelector ('# dialIcon'). addEventListener ('klik', toggleDial); function toggleDial () dial.style.visibility = dial.style.visibility === 'hidden' || dial.style.visibility === "? 'visible': 'hidden'; 
    5. Voeg de functionaliteit toe

    Voeg een aangepaste functie toe die voert cijfers in het veld met het telefoonnummer in op de klik van de cellen van het kiesscherm.

    De nummer draaien() functie voegt de cijfers één voor één toe naar de textContent eigenschap van het invoerveld gemarkeerd met de #telefoon nr identifier.

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

    Nu, u hebt een werkende wijzerplaat om een ​​telefoonnummerveld in te voeren.

    Om bij te blijven met de CSS, verander de achtergrondkleur van de cijfers in hun : hover en :actief (wanneer de gebruiker erop klikt).

     .dialDigit: hover background-color: rgb (255,228,142);  .dialDigit: active background-colour: # FF6478;  
    6. Validatie van reguliere expressie toevoegen

    Voeg een ... toe eenvoudige regex-validatie om het telefoonnummer te valideren terwijl de gebruiker voert de cijfers in het invoerveld in. Volgens de validatieregels die ik gebruik, kan het telefoonnummer alleen beginnen met een cijfer of het + karakter, en accepteer de - teken achteraf.

    U kunt de visualisatie van mijn reguliere expressie op de hieronder getoonde schermweergave bekijken met de Debuggex-app.

    Regex-visualisatie van debuggex.com

    U kunt het telefoonnummer ook valideren volgens het telefoonnummerformaat van uw land of regio.

    Maak een nieuw Regular Expression-object en sla het op in de patroon variabel. Maak ook een aangepast valideren () functie die controleert of het ingevoerde telefoonnummer voldoet aan de reguliere expressie, en als dat zo is minstens 8 tekens lang.

    Wanneer de invoer niet valideert, is de valideren () functie moet geef feedback voor de gebruiker.

    Im een rode rand toevoegen naar het invoerveld als de invoer ongeldig is, maar u kunt de gebruiker op andere manieren informeren, bijvoorbeeld met foutmeldingen.

     pattern = new RegExp ("^ (\\ + \\ d 1,2)? (\\ d + \\ - * \\ d +) * $"); functie valideren (txt) // minstens 8 tekens voor een geldig telefoonnummer. if (! pattern.test (txt) || txt.length < 8)  phoneNo.style.border = '2px solid red'; return false;  else phoneNo.style.border = 'initial'; return true;  
    7. Voer de validatie uit

    De valideren () functies moet worden gebeld om de validatie uit te voeren. Noem het van de nummer draaien() functie die u in stap 5 hebt gemaakt om de waarde van de te valideren telefoon nr veranderlijk.

    Merk op dat ik ook een heb toegevoegd aanvullende validatie voor maximale tekens (kan niet meer zijn dan 15) met behulp van een als uitspraak.

     functie dialNumber () var val = phoneNo.value + this.textContent; // maximum toegestane karakters, 15 indien (val.length> 15) return false; valideren (val); phoneNo.value = val;  

    Jouw telefoonnummer kiezer is nu klaar, bekijk de laatste demo hieronder.

    © Savtec
    Nuttige informatie en tips voor webontwikkeling. Programmering, webdesign, CSS, HTML, JAVASCRIPT. Configureer en installeer WINDOWS opnieuw. Creëren van sites en applicaties vanuit het niets.