РИТ++ 2017, Frontend Сonf
Зал Конгресс-холл, 6 июня, 11:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2505.html
Главная → Для участников → Список тезисов
Make form validation fun againНовинки
Доклад принят в программу конференции
Павел Ловцевич
LOVATA
Сооснователь и бессменный CTO компании LOVATA. С 2016-го года — сооснователь и CTO MedTech-стартапа 2doc.by, который получил широкое признание профессионального сообщества и вошёл в семью проектов ведущего белорусского портала tut.by.
Идейный вдохновитель и основатель ряда профессиональных мероприятий — Web Standards Day, MinskCSS, MinskJS.
Страстный автоспортивный болельщик! =)
Тезисы
Разработка форм является одним из самых ответственных и сложных этапов создания веб-интерфейсов. Пользовательские данные (получение, проверка, обратная связь) — критическая составляющая успешного опыта взаимодействия пользователя (UX) с интерфейсом (UI), которая прямым образом влияет на успешность проекта.
Современные браузеры предоставляют разработчику широкий набор встроенных методов для работы с данными пользователя. Разработка собственных велосипедов и использование тяжелых библиотек со множеством зависимостей остались в прошлом. В отдельных случаях можно даже обойтись без написания Javascript-кода!
...
5. Валидация
Подтверждение на основе представления объективных свидетельств
того, что требования, предназначенные для конкретного использования
или применения, выполнены.
(ISO 9000:2005),Системы менеджмента качества.Основные положения и
словарь
“
5
6. Цели валидации
• Получение корректных данных в корректном формате.
• Защита пользователя.
• Защита приложения.
6
69. field.validity.patternMismatch
Точка управления
var field = [checking field];
field.addEventListener('blur', function () {
if ( ) {
field.setCustomValidity("Error message.");
} else {
field.setCustomValidity("");
}
});
01.
02.
03.
04.
05.
06.
07.
08.
69
70. pass1!=pass2
Точка управления
var field = [checking field];
field.addEventListener('blur', function () {
if ( ) {
field.setCustomValidity("Error message.");
} else {
field.setCustomValidity("");
}
});
01.
02.
03.
04.
05.
06.
07.
08.
70
71. Собираем информацию о поле
// выбираем поле
var email = document.getElementById('email');
// читаем свойства
var validations = ['typeMismatch', 'tooShort'];
01.
02.
03.
04.
71
72. Собираем информацию о поле
function showError(typeError) {
console.log('Error type - ' + typeError);
}
01.
02.
03.
72
73. Собираем информацию о поле
email.addEventListener('blur', function(){
for (var i = 0; i < validations.length; i++){
if (email.validity[validations[i]]) {
showError(validations[i]);
}
}
});
01.
02.
03.
04.
05.
06.
07.
73
77. Выводы
• Прогрессивное улучшение.
• Непривычный способ решения задачи.
• Правильный способ решения задачи.
• Проблемы багов, архитектуры и кроссбраузерности решаемы.
• Место для OpenSource!
77