События
Last updated
Last updated
Для начала, стоит запомнить события, с которыми чаще всего придется работать:
В каких же случаях они нам помогут? Да всё просто – отслеживание change
позволяет обрабатывать такие события, как изменение элементов <select>
, <input type="radio">
и прочих. Это потребуется для динамического изменения формы или проверки введённого значения.
Отслеживание submit
необходимо для проверки правильности заполнения всех полей формы, а также для отправки формы посредством AJAX.
Начнём с последнего, для начала возьмём форму попроще:
И попробуем отправить её по адресу из атрибута «action
» посредством AJAX-запроса (для отслеживания события submit
можно использовать одноименный «shorthand» метод):
Тут затесался один незнакомый метод — serialize()
, он в ответе за «сбор» данных с формы в удобном для передачи данных формате:
Также есть метод serializeArray()
— он представляет собранные данные в виде объекта:
Хоть данная глава и про события, но всё же без методов нам дальше не обойтись — встречайте метод, который нам будет частенько нужен:
Теперь, с его помощью, мы можем добавить в предыдущий код немного проверки данных:
Хорошо, работать с формой теперь можем, осталось прикрутить более вменяемый вывод ошибок (да-да, за alert()
бьём по рукам):
При повторной отправке формы не забудьте убрать сообщения, оставшиеся от предыдущей проверки:
Теперь можно объединить кусочки кода и получить следующий вариант:
Предыдущий пример уже добавлен на страницу form.basic.html, попробуйте отправить форму; получившийся запрос и ответ вы сможете изучить в консоли браузера:
Я хотел ещё вернуться к списку событий формы и перечислить недостающие:
Примеры отслеживания всех событий формы доступны на странице events.form.html:
событие | описание |
---|---|
change
изменение значения элемента
submit
отправка формы
val()
получение значения первого элемента формы из выборки
val(value)
установка значения всем элементам формы из выборки
focus
фокус на элементе, для работы с данным событием так же есть «shorthand» метод focus()
; потребуется, если надо вывести подсказку к элементу формы при наведении
blur
фокус ушёл с элемента + метод blur()
; пригодится при валидации формы по мере заполнения полей
select
выбор текста в «textarea
» и «input[type=text]
» + метод select()
; если соберётесь разрабатывать свой WYSIWYG, то познакомитесь очень плотно