В данном видео я покажу вам реализацию валидации
инпутов. В нашей реализации мы каждому инпуту
с помощью атрибута data-rule
будем
добавлять свое правило валидации, а затем
при потери фокуса в инпуте проверять введенные
данные на корректность.
Исходники кода
input[data-rule].valid {
border: 1px solid green;
}
.invalid {
border: 1px solid red;
}
<form>
<input data-rule="length" data-from="3" data-to="5"><br><br>
<input data-rule="number"><br><br>
<input data-rule="email"><br><br>
<input data-rule="domain">
</form>
let inputs = document.querySelectorAll('input[data-rule]');
for (let input of inputs) {
input.addEventListener('blur', function() {
let rule = this.dataset.rule;
let value = this.value;
let check;
switch (rule) {
case 'length':
let length = value.length;
let from = +this.dataset.from;
let to = +this.dataset.to;
check = length >= from && length <= to;
break;
case 'number':
check = /^\d+$/.test(value);
break;
case 'email':
break;
case 'domain':
break;
}
this.classList.remove('invalid');
this.classList.remove('valid');
if (check) {
this.classList.add('valid');
} else {
this.classList.add('invalid');
}
});
}