Commit d9214e1a authored by Dmitry Filippov's avatar Dmitry Filippov

Улучшения валидатора форм

Исправлено поведение валидатора при переключении фокуса с клавиатуры, а также при вводе значения до первого срабатывания события 'blur'. Обновлен readme.md блока
parent 00f6896f
...@@ -29,8 +29,12 @@ ready(function(){ ...@@ -29,8 +29,12 @@ ready(function(){
// Для всех проверяемых текстовых полей // Для всех проверяемых текстовых полей
const fieldsText = Array.from(document.querySelectorAll('input[data-check-pattern]')); const fieldsText = Array.from(document.querySelectorAll('input[data-check-pattern]'));
fieldsText.forEach(function(input){ fieldsText.forEach(function(input){
input.addEventListener('blur', function(){ checkFieldText(input); }); let hasBeenAlreadyBlured = false;
input.addEventListener('keyup', function(){ checkFieldText(input); }); input.addEventListener('blur', function(){
checkFieldText(input);
if(!hasBeenAlreadyBlured) hasBeenAlreadyBlured = true;
});
input.addEventListener('input', function(){ if(hasBeenAlreadyBlured) checkFieldText(input); });
}); });
// Для всех проверяемых чекбоксов // Для всех проверяемых чекбоксов
......
Включается при указании на теге `form` атрибута `data-check-form`. Включается при указании на теге `form` атрибута `data-check-form`.
Для текстовых полей: по событию `blur` содержимое поля анализируется на соответствие регулярному выражению из атрибута `data-check-pattern`. Для текстовых полей: содержимое поля анализируется на соответствие регулярному выражению из атрибута `data-check-pattern` по событию `blur`, а также по событию `input` при последующем фокусе.
Для чекбоксов: по событию `change` проверяется соответствия состояния и `data-check-state="on"` (`off`). Для чекбоксов: по событию `change` проверяется соответствия состояния и `data-check-state="on"` (`off`).
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment