jQuery предоставляет мощные инструменты для обработки событий форм, что упрощает взаимодействие с пользователем и управление поведением веб-страниц. Основные события форм включают отправку формы, изменение значений полей, фокусировку и потерю фокуса, а также события нажатия клавиш внутри полей.
submitСобытие submit возникает при попытке отправить форму.
Его обработка позволяет проверять данные перед отправкой и предотвращать
стандартное поведение браузера.
$('#myForm').on('submit', function(event) {
event.preventDefault(); // предотвращает стандартную отправку
let username = $('#username').val();
if (username === '') {
alert('Поле имени не может быть пустым');
return;
}
console.log('Форма готова к отправке:', username);
});
Ключевые моменты:
on('submit', ...) позволяет привязать обработчик
события к форме.event.preventDefault() блокирует стандартное действие
браузера.val() используется для получения значения поля.changeСобытие change срабатывает, когда значение элемента
формы изменяется и элемент теряет фокус. Оно полезно для динамической
валидации и обновления интерфейса.
$('#email').on('change', function() {
let email = $(this).val();
if (!email.includes('@')) {
$(this).css('border-color', 'red');
} else {
$(this).css('border-color', '');
}
});
Особенности:
focus и blurСобытия focus и blur помогают управлять
поведением полей при входе и выходе курсора.
$('input').on('focus', function() {
$(this).css('background-color', '#e0f7fa');
});
$('input').on('blur', function() {
$(this).css('background-color', '');
});
Примечания:
focus срабатывает при переходе курсора в поле.blur — при уходе курсора из поля.keydown, keyup, keypressЭти события применяются для отслеживания ввода с клавиатуры внутри полей формы.
$('#password').on('keyup', function() {
let length = $(this).val().length;
$('#passwordStrength').text(`Длина пароля: ${length}`);
});
Особенности:
keydown — событие срабатывает при нажатии клавиши.keyup — срабатывает при отпускании клавиши.keypress — устаревшее событие, но иногда используется
для символьных проверок.Событие change особенно важно для элементов с
несколькими вариантами, такими как чекбоксы и радиокнопки.
$('input[type="checkbox"]').on('change', function() {
if ($(this).is(':checked')) {
console.log('Чекбокс выбран');
} else {
console.log('Чекбокс снят');
}
});
$('input[name="gender"]').on('change', function() {
console.log('Выбран пол:', $(this).val());
});
Важно:
is(':checked') определяет состояние
чекбокса.Для <select> элементов событие change
позволяет отслеживать выбранные значения, включая множественный
выбор.
$('#country').on('change', function() {
let selected = $(this).val();
console.log('Выбранная страна:', selected);
});
val() возвращает массив
выбранных значений.Для динамически созданных элементов форм лучше использовать делегирование:
$(document).on('change', 'input.dynamic', function() {
console.log('Динамический input изменён:', $(this).val());
});
Преимущества:
$('#signupForm').on('submit', function(event) {
event.preventDefault();
let username = $('#username').val();
let password = $('#password').val();
if (username.length < 3) {
alert('Имя слишком короткое');
return;
}
if (password.length < 6) {
alert('Пароль должен быть не менее 6 символов');
return;
}
alert('Форма успешно проверена');
});
submit и методы
val().on вместо
устаревших bind, live или
delegate.Эта структура событий позволяет создавать формы с полной клиентской проверкой, динамическим поведением и удобным UX, минимизируя ручное управление DOM и обеспечивая чистый код.