Въведение в проверката на ограниченията на HTML5
Интерактивни уебсайтове и приложения не могат да бъдат представени без форми, които ни позволяват свържете се с нашите потребители, и към получаване на данните ние се нуждаем, за да осигурим безпроблемни операции с тях. Ние се нуждаем валиден потребителски вход, но ние трябва да го придобием по такъв начин не осуетява нашите потребители твърде много.
Макар че можем да подобрим използваемостта на формулярите с интелигентно избрани UX шаблони за дизайн, HTML5 има и естествен механизъм за валидиране на ограничения, който ни позволява да улавяйте грешките при въвеждането в предния край.
В тази публикация ще се съсредоточим върху валидиране на ограничения, предоставено от браузъра, и погледнете как могат да се занимават разработчиците на интерфейси осигурете валидно въвеждане от потребителя с помощта на HTML5.
Защо имаме нужда от предварителен вход
Входно валидиране има две основни цели. Съдържанието, което получаваме, трябва да бъде:
1. Полезно
Имаме нужда от използваеми данни, с които можем да работим. Трябва да накараме хората да влязат реалистични данни в правилния формат. Например, никой, който е жив днес, не е роден преди 200 години. Първоначално получаването на подобни данни може да изглежда смешно, но в дългосрочен план това е досадно и популяризира нашата база данни с безполезни данни.
2. Обезопасете
Когато говорим за сигурност, това означава, че трябва предотврати инжектирането на злонамерено съдържание - умишлено или случайно.
Може да се постигне полезност (получаване на разумни данни) само от страна на клиента, екипът на бекенда не може да помогне с това. Да постигна, да достигна сигурност, разработчиците на предната и задната част трябва да работят заедно.
Ако разработчиците на интерфейса правилно потвърдят въвеждането на клиентската страна, екипът ще трябва да се справя с много по-малко уязвимости. Хакерството (сайтът) често води до това изпращане на допълнителни данни, или данни в грешен формат. Разработчиците могат да се борят с дупки в сигурността като тези, успешно да се борят от предния край.
Например, това ръководство за сигурност на PHP препоръчва да проверите всичко, което можем, от страна на клиента. Те подчертават важността на валидирането на входния интерфейс, като дават много примери, като например:
"Валидността на въвеждане работи най-добре с изключително ограничени стойности, например когато нещо трябва да е цяло число, или буквено-цифров низ, или HTTP URL адрес."
При валидирането на входния интерфейс нашата работа е да налагат разумни ограничения при въвеждане от потребителя. Функцията за валидиране на ограниченията на HTML5 ни осигурява средства за това.
Валидиране на ограничения на HTML5
Преди HTML5, разработчиците на frontend са били ограничени до валидиране на потребителския вход с JavaScript, което беше досаден и податлив на грешки процес. За да подобри валидирането на формуляри от страна на клиента, HTML5 въведе a валидиране на ограничения алгоритъм, който работи в модерни браузъри, и проверява валидността на подадените данни.
За да направи оценката, алгоритъмът използва атрибути за въвеждане на елементи за въвеждане, като ,
, и
. Ако искате да знаете как валидирането на ограниченията се случва стъпка по стъпка в браузъра, проверете това WhatWG doc.
Благодарение на функцията за проверка на ограниченията на HTML5 можем да изпълним всички стандартни задачи за валидиране на входа от страна на клиента без JavaScript, единствено с HTML5.
За да изпълните по-сложни задачи, свързани с проверката, HTML5 ни предоставя a JavaScript API за проверка на ограниченията можем да използваме за настройка на нашите персонализирани скриптове за проверка.
Проверка с типове семантичен вход
HTML5 въведе типове семантични входове това - освен посочване на значението на елемента за потребителските агенти - също може да се използва за валидиране на потребителския вход чрез ограничаване на потребителите до определен входен формат.
Освен типовете входни данни, които вече са съществували преди HTML5 (текст
, парола
, Изпращане
, нулиране
, радио
, отметка
, бутон
, скрит
), можем също да използваме следното семантични типове HTML5 за въвеждане: електронна поща
,тел
,URL
,номер
,път
,дата
,Време за среща
,дата и час-местен
, месец
,седмица
, диапазон
, Търсене
,цвят
.
Можем безопасно да използваме HTML5 типове вход с по-стари браузъри, тъй като те ще се държат като в браузъри, които не ги поддържат.
Нека видим какво се случва, когато потребителят въведе грешен тип вход. Да кажем, че сме създали поле за въвеждане на имейл със следния код:
Когато потребителят въведе низ, който не използва имейл формат, алгоритъмът за валидиране на ограниченията не изпраща формуляра, и връща съобщение за грешка:
Същото правило важи и за други видове вход, например за тип = "URL"
потребителите могат да изпращат вход, който следва URL формата (започва с протокол, като например HTTP: //
или FTP: //
).
Някои входни типове използват дизайн, който дори не позволява на потребителите да въвеждат грешен входен формат, например цвят
и диапазон
.
Ако използваме цвят
Въведеният от потребителя вид е ограничен от избора на цвят от инструмента за избор на цвят или оставането му с черно по подразбиране. Полето за въвеждане е ограничени от дизайна, следователно не оставя много шанс за грешка на потребителя.
Когато е подходящо, си струва да обмислите използването на HTML етикет, който работи подобно на тези типове входни данни, ограничени по дизайн; позволява на потребителите да избират от падащия списък.
Използвайте атрибутите за проверка на HTML5
Използването на семантични входни типове поставя определени ограничения върху това, което потребителите могат да представят, но в много случаи искаме да отидем малко по-далеч. Това е, когато атрибути, свързани с валидирането от може да ни помогне.
Атрибутите, свързани с валидирането, принадлежат на определени типове входни данни (те не могат да се използват за всичко типове), върху които налагат допълнителни ограничения.
1. длъжен
за получаване на валиден вход с всички средства
Най- длъжен
атрибутът е най-известният атрибут за проверка на HTML. Това е булев атрибут което означава не приема никаква стойност, просто трябва да го поставим вътре маркирайте, ако искаме да го използваме:
Ако потребителят забрави да въведе стойност в желаното поле за въвеждане, браузърът връща съобщение за грешка което ги предупреждава да попълнят полето и те не може да изпрати формуляра докато не предоставят валиден вход. Ето защо винаги е важно визуално задължителни полета за потребителите.
Най- длъжен
атрибут може да бъде използвани заедно със следните видове вход: текст
, Търсене
, URL
, тел
, електронна поща
, парола
, дата
, Време за среща
, дата и час-местен
, месец
, седмица
,път
, номер
, отметка
, радио
, досие
, плюс с и
HTML тагове.
2. мин
, макс
и стъпка
за валидиране на номера
Най- мин
, макс
и стъпка
атрибутите ни позволяват постави ограничения върху полетата за въвеждане на числа. Те могат да се използват заедно с диапазон
, номер
, дата
, месец
, седмица
, Време за среща
, дата и час-местен
, и път
входни типове.
Най- мин
и макс
атрибутите осигуряват чудесен начин за лесно изключване на неразумни данни. Например примерът по-долу принуждава потребителите да подадат възраст между 18 и 120 години.
Когато алгоритъмът за валидиране на ограничението се сблъсква с по-малък вход от потребителя мин
, или по - голям от. \ t макс
стойност, предотвратява достигането до бекенда и връща съобщение за грешка.
Най- стъпка
атрибут задава числов интервал между правните стойности на числово поле за въвеждане. Например, ако искаме потребителите да избират само от високосни години, можем да добавим стъпка = "4"
атрибут на полето. В примера по-долу използвах номер
тип на въвеждане, тъй като няма тип = "година"
в HTML5.
С предварително зададените ограничения потребителите могат да избират само от високосни години между 1972 и 2016 г., ако използват малката стрелка нагоре, която идва с номер
входен тип. Те могат също да въведат стойност ръчно в полето за въвеждане, но в случай, че не отговаря на ограниченията, браузърът ще върне съобщение за грешка.
3. максимална дължина
за валидиране на дължината на текста
Най- максимална дължина
атрибутът позволява задайте максимална дължина на знака за текстови полета за въвеждане. Може да се използва заедно с текст
, Търсене
, URL
, тел
, електронна поща
и парола
входни типове и с HTML етикет.
Най- максимална дължина
атрибутът може да бъде отлично решение за полета с телефонен номер, които не могат да имат повече от определен брой знаци, или за формуляри за контакти, в които не искаме потребителите да пишат повече от определена дължина.
Кодовият фрагмент по-долу показва пример за последното, което ограничава потребителските съобщения до 500 знака.
Най- максимална дължина
атрибут не връща съобщение за грешка, но браузърът просто не позволява на потребителите да въвеждат повече от зададения знаков номер. Затова е от решаващо значение информират потребителите за ограничението, в противен случай няма да разберат защо не могат да продължат да пишат.
4. модел
за проверка на Regex
Най- модел
атрибут ни позволяват използвайте регулярни изрази в процеса на валидиране на входа. Редовният израз е a предварително зададен набор от знаци които формират определен модел. Можем да я използваме или за търсене на низове, които следват модела, или за налагане на определен формат, определен от шаблона.
С модел
атрибутът, който можем да направим - ограничава потребителите да изпращат своите данни във формат, който съответства на дадения нормален израз.
Най- модел
атрибут има много случаи на употреба, но може да бъде особено полезен, когато искаме валидиране на поле за парола.
Примерът по-долу изисква от потребителите да въведат парола с дължина минимум 8 знака и да съдържа поне една буква и един номер (източник на използвания от мен ред).
Още няколко неща
В тази статия разгледахме как да използваме проверката на формуляри, предоставена от браузъра предоставена от алгоритъма за корекция на ограниченията на HTML5. За да създадем нашите персонализирани скриптове за проверка, трябва да използваме API за валидиране на ограничението, което може да бъде следващата стъпка при усъвършенстване на уменията за проверка на формуляри.
HTML5 формулярите са достъпни чрез помощни технологии, така че не е задължително да използваме ария-необходим
ARIA атрибут за маркиране на необходимите полета за въвеждане на екранни четци. Все пак може да е полезно да добавите поддръжка за достъпност за по-стари браузъри. Възможно е също така да се откажете от валидирането на ограниченията чрез добавяне на novalidate
булев атрибут на елемент.