Начална » UI / UX » Как да създадете прост избор на телефонен номер

    Как да създадете прост избор на телефонен номер

    Телефонни номера, Освен имена и имейли, най-често използваната информация за контакти в онлайн формуляри. Полетата за телефонен номер обикновено са проектирани по начин, който изисква от потребителите да въвеждат номерата при използване на техните клавиатури. Този метод често води до неточно въвеждане на данни.

    Да се намаляване на грешките при въвеждане от потребителя и да подобрите потребителския опит на сайта си, можете да създадете GUI което позволява на потребителите бързо да въвеждат телефонния си номер, по начин, подобен на този, който взема дата.

    В този урок ще видите как да го направите добавете обикновен избор на телефонен номер към поле за въвеждане. Ще използваме HTML5, CSS3 и JavaScript, за да стигнем до GUI, който можете да видите и тествате в демото по-долу. Ще използваме и регулярни изрази, за да сме сигурни, че потребителите наистина въвеждат валиден телефонен номер.

    1. Създайте полето за телефонен номер

    първи, създайте поле за въвеждане с икона за набиране отдясно, която ще отвори екрана за набиране при щракване. Иконата за набиране просто прилича на 9 черни кутии, подредени 3 на 3, които трябва да харесат това, което виждате на обикновен телефон.

    Използвам тел входен тип за правилната семантика на HTML5, но можете да използвате и текст ако искате.

     
    HTML база за избор на телефонен номер
    2. Създайте екрана за набиране

    Най- екран за набиране е решетка от числа от 0 до 9 плюс някои специални символи. Може да се направи с или HTML

    или JavaScript.

    Тук ще ви покажа как да създадете екранната таблица за набиране в JavaScript. Разбира се, можете да добавите таблицата директно в изходния код на HTML, ако предпочитате по този начин.

    Първо, създайте нов "Маса" елемент в. \ t DOM с помощта на createElement () метод. Също така му дайте "Набиране" идентификатор.

     / * Създаване на екран за набиране * / var dial = document.createElement ('table'); dial.id = 'набиране'; 

    Добави за контур да вмъкнете с него четирите реда на таблицата за набиране. След това, за всеки ред, изпълни друг за контур за да се добавят три клетки на ред. Маркирайте всяка клетка с "DialDigit" клас.

     за (var rowNum = 0; редNum < 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();   

    Двете за Циклите по-горе изчисляват цифрите, които влизат в клетките на таблицата за набиране - стойностите на cell.textContent собственост - по следния начин:

     (colNum + 1) + (редNum * 3) / * първи ред * / (0 + 1) + (0 * 3) = 1 (1 + 1) + (0 * 3) = 2 (2 + 1) + ( 0 * 3) = 3 / * втори ред * / (0 + 1) + (1 * 3) = 4 (1 + 1) + (1 * 3) = 5 (2 + 1) + (1 * 3) = 6 / * и др. * / 

    Последният ред е различен, както се състои два специални знака, - и + които се използват в форматите на телефонни номера за идентифициране на регионалните кодове и цифрата 0.

    За да създадете последния ред на екрана за набиране, добавете следното ако изявление на вътрешното за контур.

     за (var rowNum = 0; редNum < 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();   

    Най- екранът за набиране вече е завършен, добавете го към #dialWrapper HTML контейнер, който сте създали в Стъпка 1, като използвате две DOM методи:

    1. на querySelector () метод изберете контейнера
    2. на appendChild () метод добавете екрана за набиране - в. \ t циферблат променлива - към контейнера
     document.querySelector ( "# dialWrapper") appendChild (набиране). 
    Наберете екранна таблица без стил
    3. Настройте екрана за набиране

    За да стане по-привлекателна, оформете екрана за набиране с CSS.

    Не е задължително да се придържате към стила ми, но не забравяйте добави потребителя изберете: няма; собственост на #dial контейнер така че докато потребителят кликне върху цифрите, текстът няма да бъде избран от курсора.

     #dial width: 200px; височина: 200px; граничен колапс: колапс; text-align: center; позиция: относителна; -ms-user-select: none; -webkit-user-select: няма; -moz-user-select: няма; user-select: няма; цвят: # 000; box-shadow: 0 0 6px # 999;  .dialDigit граница: 1px твърдо #fff; курсор: указател; фонов цвят: rgba (255,228,142, .7);  
    Набиране на екранна маса със стайлинг
    4. Покажете екрана за набиране при щракване

    Първо добавете видимост: скрит; стил правило #dial в горния CSS да се скриете екрана за набиране по подразбиране. ще се показва само когато потребителят кликне върху иконата за набиране.

    След това добавете манипулатор на събития при натискане към иконата за набиране с JavaScript да се превключвате видимостта на екрана за набиране.

    За да направите това, трябва да използвате гореспоменатото querySelector () и addEventListener () методи. Последното прикачва събитие за кликване към иконата за набиране и извиква персонализирания toggleDial () функция.

    Най- toggleDial () функция променя видимостта на екрана за набиране от скрит към видим и обратно.

     document.querySelector ('# dialIcon'). addEventListener ('click', toggleDial); функция toggleDial () dial.style.visibility = dial.style.visibility === 'скрит' || dial.style.visibility === "?" видим ":" скрит "; 
    5. Добавете функционалността

    Добавете персонализирана функция, която въвежда цифри в полето на телефонния номер при щракване на клетките на екрана за набиране.

    Най- набери номер() функция добавя цифрите един по един към textContent на полето за въвеждане, маркирано с #телефон не идентификатор.

     phoneNo = document.querySelector ("# phoneNo"); функция dialNumber () phoneNo.value + = this.textContent;  dialDigits = document.querySelectorAll ('. dialDigit'); за (var i = 0; i < dialDigits.length; i++)  dialDigits[i].addEventListener('click', dialNumber);  

    Сега имате работещ екран за набиране за въвеждане на поле за телефонен номер.

    За да поддържате CSS, променете цвета на фона на цифрите в техните : навъртам и :активен (когато потребителят кликне върху него).

     .dialDigit: hover фон-цвят: rgb (255,228,142);  .dialDigit: активен цвят на фона: # FF6478;  
    6. Добавете валидиране на регулярни изрази

    Добави проста проверка на регулярните признаци за потвърждаване на телефонния номер, докато потребителят въвежда цифрите в полето за въвеждане. Според правилата за валидиране, които използвам, телефонният номер може да започва само с цифра или + и приемете - след това.

    Можете да видите визуализацията на моя нормален израз на екрана по-долу, създаден с приложението Debuggex.

    Визуализация на Regex от debuggex.com

    Можете също така да потвърдите телефонния номер според формата на телефонния номер на вашата страна или регион.

    Създайте нов обект Regular Expression и го запазете в модел променлива. Също така създайте потребителски валидиране () функция, която проверява дали въведеният телефонен номер отговаря на нормалния израз, и ако е така най-малко 8 символа.

    Когато входът не се потвърди, валидиране () трябва да функционира дават обратна връзка на потребителя.

    Аз съм добавяне на червена рамка към полето за въвеждане, когато входът е невалиден, но можете да информирате потребителя по други начини, например с съобщения за грешки.

     pattern = new RegExp ("^ (+) \ _ d 1,2)? (\ t функция validate (txt) // поне 8 символа за валиден телефонен номер if (! pattern.test (txt) || txt.length < 8)  phoneNo.style.border = '2px solid red'; return false;  else phoneNo.style.border = 'initial'; return true;  
    7. Извършете проверката

    Най- валидиране () функции трябва да се извика за да извърши валидирането. Обадете се от набери номер() функция, която сте създали в Стъпка 5, за да потвърдите стойността на телефон не променлив.

    Имайте предвид, че аз също добавих допълнителна проверка за максимален брой знаци (не може да бъде повече от 15) с помощта на ако изявление.

     функция dialNumber () var val = phoneNo.value + this.textContent; // максимално допустими знаци, 15 ако (val.length> 15) връщаме false; валидиране (Val); phoneNo.value = val;  

    Вашият избор на телефонен номер вече е готов, вижте финалната демонстрация по-долу.

    © Savtec
    Полезна информация и съвети за уеб разработка. Програмиране, уеб дизайн, CSS, HTML, JAVASCRIPT. Конфигурирайте и инсталирайте отново WINDOWS. Създаване на сайтове и приложения от нулата.