Большинство элементов форм поддерживают следующие обработчики событий:
onclick
Вызывается при щелчке левой кнопкой мыши на данном элементе. Этот об_ работчик особенно полезен для кнопок и сходных с ними элементов формы.
onchange
Вызывается, когда пользователь изменяет значение, представляемое элемен_ том, например вводит текст или выбирает пункт в списке. Кнопки и сходные с ними элементы обычно не поддерживают этот обработчик события, т. к. у них нет значения, которое можно редактировать. Обратите внимание: этот
462 Глава 18. Формы и элементы форм
обработчик не вызывается, например, при каждом нажатии пользователем очередной клавиши в ходе заполнения поля ввода. Он вызывается, только ко_ гда пользователь изменяет значение элемента и затем перемещает фокус вво_ да к какому_либо другому элементу формы. То есть вызов этого обработчика события указывает на завершенное изменение.
onfocus
Вызывается, когда элемент формы получает фокус ввода.
onblur
Вызывается, когда элемент формы теряет фокус ввода.
В примере 18.1 показано, как определить обработчики событий для элементов формы. Пример разработан таким образом, что сообщает о событиях в момент их возникновения, перечисляя их в элементе Textarea. Это дает возможность по_ экспериментировать с элементами форм и вызываемыми ими обработчиками со_ бытий.
Важно знать, что в коде обработчика события ключевое слово this всегда ссыла_ ется на элемент документа, вызвавший данное событие. Во всех элементах фор_ мы имеется свойство form, ссылающееся на форму, в которой содержится эле_ мент, поэтому обработчики событий элемента формы всегда могут обратиться к объекту Form как к this.form. Сделав еще один шаг, мы можем сказать, что об_ работчик события для одной формы может ссылаться на соседний элемент фор_ мы, имеющий имя x, как this.form.x.
Обратите внимание: в этом разделе перечислены только четыре обработчика со_ бытий, представляющие особую важность для элементов форм. Помимо них эле_ менты форм, как и (почти) все HTML_элементы, поддерживают различные обра_ ботчики (такие как onmousedown). Подробное обсуждение событий и обработчиков событий приведено в главе 17, а в примере 17.5 той же главы демонстрируется порядок использования обработчиков событий от клавиатуры в элементах форм.