Как мы видели в примерах из предыдущих глав, обработчики событий (в исход_ ной модели обработки событий) задаются в виде строк JavaScript_кода, присваи_ ваемых в качестве значений HTML_атрибутам. Например, чтобы выполнить JavaScript_код при щелчке на кнопке, укажите этот код в качестве значения ат_ рибута onclick тега <input> (или <button>):
Значение атрибута обработчика события – это произвольная строка JavaScript_ кода. Если обработчик состоит из нескольких JavaScript_инструкций, они долж' ны отделяться друг от друга точками с запятой. Например:
Если обработчик события требует нескольких инструкций, то, как правило, про_ ще определить его в теле функции и затем задать HTML_атрибут обработчика со_ бытия для вызова этой функции. Например, проверить введенные пользовате_ лем в форму данные перед их отправкой можно при помощи атрибута onsubmit тега <form>.1 Проверка формы обычно требует как минимум нескольких строк кода, поэтому не надо помещать весь этот код в одно длинное значение атрибута, разумнее определить функцию проверки формы и просто задать атрибут onsubmit для вызова этой функции. Например, если для проверки определить функцию с именем validateForm(), то можно вызывать ее из обработчика события следую_ щим образом:
1 Подробное описание HTML_форм, включая пример проверки правильности за_ полнения полей формы, приводится в главе 18.
408 Глава 17. События и обработка событий
Помните, что язык HTML нечувствителен к регистру, поэтому в атрибутах обра_ ботчиков событий допускаются буквы любого регистра. Одно из распространен_ ных соглашений состоит в употреблении символов различных регистров, при этом префикс «on» записывается в нижнем регистре: onClick, onLoad, onMouseOut и т. д. Однако в этой книге для совместимости с языком XHTML, чувствитель_ ным к регистру, я предпочел везде нижний регистр.
JavaScript_код в атрибуте обработчика события может содержать инструкцию return, а возвращаемое значение может иметь для броузера специальный смысл. Вскоре мы это обсудим. Кроме того, следует отметить, что JavaScript_код обра_ ботчика события работает в области видимости (см. главу 4), отличной от гло_ бальной. Это также более подробно обсуждается далее в этом разделе.