Валидация формы на jQuery
На этом уроке мы научимся делать валидацию форм с помощью плагина jQuery Validate. Валидация формы - это проверка скриптом правильность (выполнение заданных условий) заполнения полей формы. В случае ошибок при заполнении, скрипт сообщает об этой ошибке и блокирует отправку формы получателю.
Официальный сайт плагина: https://jqueryvalidation.org/
Для демонстрации и настройки работы плагина, нам потребуется простая HTML форма. Это как раз тот случай, когда фреймворк Bootstrap будет очень полезен, позаимствуем уже готовый код симпатичной формы в разделе Components/Forms на сайте https://getbootstrap.com. Обратите внимание, где именно в HTML-коде подключены CDN для Bootstrap, jQuery и плагин jQuery Validate.
<!doctype html>
<html lang="ru">
<head>
<title>Валидация формы на jQuery</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
</head>
<body>
<div class="container">
<div class="row justify-content-center">
<div class="col-4">
<h2>Валидация формы</h2>
<hr>
<form class="form" id="myForm" role="form">
<div class="form-group">
<label for="inputEmail">Введите email:</label>
<input type="email" class="form-control" name="email" id="inputEmail" placeholder="Введите email">
</div>
<div class="form-group">
<label for="inputName">Введите имя:</label>
<input type="text" class="form-control" name="name" id="inputName" placeholder="Введите имя">
</div>
<button type="submit" class="btn btn-primary">Отправить</button>
</form>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.js"></script>
</body>
</html>
Вызываем на форму метод validate
Наша форма имеет id - "myForm", его и пропишем в параметрах. Метод validate принимает объект, в котором мы передаем значение rules (создаем правило) и у данного объекта перечисляем поля - input, которые будут использованы. У нас имеется два поля (input), имя первого - name="email", а второго - name="name", сделаем эти поля обязательными (required) для заполнения.
Зададим ещё одно правило для поля name - длина вводимых символов должна быть не меньше 5-ти.
$("#myForm").validate({
rules: {
email: {
required: true,
email: true
},
name: {
required: true,
minlength: 5
}
}
});
Давайте проверим, работает ли валидация полей, на прописанные правила. При отправке пустых полей, появляется сообщение: "This field is required.".
При вводе длины имени меньше 5-ти символов, мы видим сообщение: "Please enter at least 5 characters".
Как изменить текст выводимых сообщение? Просто запишем другое правило - messages. Теперь сообщения будут выводиться те, что мы задали.
messages: {
email: {
required: "Поле email обязательно для заполнения",
},
name: {
required: "Поле имя обязательно для заполнения",
minlength: jQuery.validator.format("Длина имени должна быть больше 5-ти символов")
}
},
Функция submitHandler будет вызываться, когда валидация формы прошла успешно. Добавим следующий код:
submitHandler: function() {
alert("Валидация успешна!");
}
Введем в поля формы любой email и имя не менее 5-ти символов. После нажатия кнопки, выскакивает окно с текстом: "Валидация успешна!". Это значит, что форма прошла валидацию и все поля совпадают.
Мы разобрали только самые главные параметры плагина jQuery Validate. Умение для верстальщика внедрять в проекты готовые плагины на jQuery - это большой плюс и мой видеокурс поможет вам в этом деле.
Весь код валидации формы на jQuery:
See the Pen jquery validate form by porsake (@porsake) on CodePen.
-
- Михаил Русаков
Комментарии (1):
Пробел тоже считается за символ. В данном примере, если ввести 5 пробелов в поле имя, то валидация будет успешной.
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.