Bliss.js предоставляет удобный набор инструментов для работы с DOM и управления событиями, включая эффективные методы валидации форм. В основе лежит возможность связывать элементы формы с правилами проверки, а также гибко реагировать на изменение их состояния без необходимости написания громоздкого кода.
Каждое поле формы можно привязать к набору правил, используя метод
validate. Например, для текстового поля с обязательным
вводом и ограничением длины:
let form = Bliss('form#signup');
form.validate({
username: {
required: true,
minLength: 3,
maxLength: 20
},
email: {
required: true,
pattern: /^[^\s@]+@[^\s@]+\.[^\s@]+$/
}
});
Ключевые моменты:
required — поле должно быть заполнено.minLength и maxLength — минимальная и
максимальная длина текста.pattern — регулярное выражение для проверки
формата.Метод validate автоматически следит за событиями
input и change, проверяя поле при каждом
изменении.
Bliss.js поддерживает асинхронные проверки, например, проверку уникальности имени пользователя на сервере. Для этого можно использовать промисы в правилах:
form.validate({
username: {
required: true,
async: async (value) => {
let response = await fetch(`/api/check-username?name=${value}`);
let data = await response.json();
return data.available;
},
message: 'Имя пользователя уже занято'
}
});
true, поле считается
валидным.false можно задать собственное сообщение об
ошибке через message.Помимо стандартных проверок, можно создавать свои функции валидации:
function passwordStrength(value) {
return /[A-Z]/.test(value) && /\d/.test(value);
}
form.validate({
password: {
required: true,
custom: passwordStrength,
message: 'Пароль должен содержать хотя бы одну цифру и заглавную букву'
}
});
Особенности пользовательских правил:
true или
false.Bliss.js позволяет выполнять глобальную проверку всей формы перед отправкой:
form.on('submit', e => {
e.preventDefault();
if (form.isValid()) {
form.submit();
} else {
console.log('Форма содержит ошибки');
}
});
Метод isValid() проверяет все поля на соответствие
заданным правилам и возвращает булево значение.
Bliss.js интегрирует простой механизм отображения ошибок рядом с
полем. Для этого можно использовать метод showError:
form.fields.username.showError('Имя пользователя не может быть пустым');
form.fields.email.clearError();
showError(message) выводит сообщение об ошибке.clearError() убирает текущее сообщение.Также возможно создавать кастомные обработчики для визуализации ошибок через события:
form.on('invalid', field => {
field.element.style.borderColor = 'red';
});
form.on('valid', field => {
field.element.style.borderColor = '';
});
Bliss.js предоставляет следующие события для контроля валидации:
valid — поле успешно прошло проверку.invalid — поле не прошло проверку.change — значение поля изменилось.submit — попытка отправки формы.Использование событий позволяет создавать динамическую обратную связь для пользователя и предотвращать отправку некорректных данных.
Валидацию можно применять не только к отдельным полям, но и к логическим группам, например, нескольким чекбоксам или радиокнопкам:
form.validate({
preferences: {
required: true,
minSelected: 1,
message: 'Выберите хотя бы один вариант'
}
});
minSelected проверяет минимальное количество выбранных
элементов.Bliss.js легко сочетается с библиотеками для визуализации ошибок, например, для подсветки полей, всплывающих подсказок или динамических уведомлений. Важной особенностью является то, что все события и методы валидации доступны через объекты полей и формы, что позволяет полностью контролировать внешний вид интерфейса при ошибках.
Bliss.js предлагает мощный и гибкий подход к валидации форм: от простых проверок до асинхронных запросов на сервер и кастомных правил. Использование встроенных методов и событий обеспечивает компактный, читаемый код и легкую интеграцию с любым пользовательским интерфейсом.