Unpoly предоставляет возможность использовать атрибуты валидации для создания динамичных веб-приложений с минимальными усилиями. Это позволяет разработчикам легко интегрировать проверки формы и валидацию данных непосредственно в HTML-структуру с помощью простых атрибутов, без необходимости писать сложный JavaScript код.
up-validate Атрибут
up-validate используется для привязки валидации к форме или
её элементам. Он указывает, что при отправке формы Unpoly должен
проверять её данные на соответствие правилам валидации, заданным в
других атрибутах формы. Важно, что валидация будет выполняться до того,
как форма будет отправлена на сервер.
up-validate-error Этот атрибут
позволяет указать, что делать в случае ошибки валидации. Он может быть
применён к элементам формы, чтобы задать действия, которые должны быть
выполнены при возникновении ошибки (например, вывод сообщения об ошибке,
подсветка полей формы).
up-validate-message Атрибут
up-validate-message позволяет задать текст сообщения об
ошибке для конкретного поля формы. Он полезен для настройки сообщений,
которые будут отображаться пользователю, если введённые данные не
соответствуют установленным требованиям.
up-validate-trigger Атрибут
up-validate-trigger используется для указания, когда именно
должна быть выполнена валидация. Обычно валидация происходит при
отправке формы, но можно настроить её выполнение и при изменении
значений в полях формы (например, при потере фокуса, изменении текста
или нажатии на кнопку).
<form action="/submit" method="post" up-validate>
<label for="username">Имя пользователя</label>
<input type="text" id="username" name="username" required up-validate-message="Введите имя пользователя">
<label for="email">Электронная почта</label>
<input type="email" id="email" name="email" required up-validate-message="Введите правильный адрес электронной почты">
<button type="submit">Отправить</button>
</form>
В этом примере используется атрибут up-validate на
форме, что означает, что валидация будет выполнена перед отправкой
данных. Также для полей username и email
указаны сообщения об ошибках, которые будут отображаться, если поля не
заполнены или введены неверные данные.
<form action="/submit" method="post" up-validate>
<label for="password">Пароль</label>
<input type="password" id="password" name="password" required up-validate-message="Пароль обязателен" pattern="^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$" up-validate-message="Пароль должен содержать хотя бы одну букву и одну цифру, и быть длиной не менее 8 символов">
<button type="submit">Отправить</button>
</form>
Здесь, помимо атрибута up-validate-message для задания
сообщений, используется атрибут pattern для указания
регулярного выражения, которому должны соответствовать данные. В случае
несоответствия этому выражению, будет показано сообщение о том, что
пароль не соответствует заданным требованиям.
<form action="/submit" method="post" up-validate>
<label for="email">Электронная почта</label>
<input type="email" id="email" name="email" required up-validate-message="Введите правильный адрес электронной почты" up-validate-trigger="blur" up-validate-async="check-email">
<button type="submit">Отправить</button>
</form>
Атрибут up-validate-async позволяет указать, что
валидация должна быть выполнена асинхронно. В данном примере при потере
фокуса с поля электронной почты будет выполнена асинхронная проверка
уникальности адреса через сервер. Это может быть полезно для проверки,
не зарегистрирован ли уже введённый адрес.
up-validate позволяет избежать написания
дополнительного JavaScript кода для каждой формы, делая валидацию
доступной прямо через HTML.up-validate-message и
up-validate-error могут быть использованы для
предоставления пользователю подробных сообщений о том, почему его данные
не прошли проверку. Это улучшает взаимодействие с пользователем и
помогает избежать путаницы.up-validate-async может
быть использована для выполнения запросов на сервер, например, для
проверки уникальности данных, не требуя перезагрузки страницы.Unpoly также позволяет стилизовать поля с ошибками, чтобы визуально
выделить их для пользователя. Обычно это достигается с помощью классов
CSS, которые можно добавлять при возникновении ошибки. Например, можно
добавить класс up-validate-error к элементу формы при
ошибке валидации.
Пример стилизации:
input.up-validate-error {
border: 1px solid red;
}
span.up-validate-error-message {
color: red;
font-size: 12px;
}
Атрибуты валидации в Unpoly хорошо интегрируются с другими JavaScript фреймворками, такими как Vue.js, React или Angular, поскольку они ориентированы на работу с HTML. Это даёт возможность использовать Unpoly для валидации форм в приложениях, написанных на этих фреймворках, без значительных изменений в коде.
Благодаря гибкости и простоте использования, атрибуты валидации Unpoly являются отличным инструментом для быстрого создания и валидации форм, минимизируя количество JavaScript-кода и улучшая производительность веб-приложений.