Во многих случаях обработчик события (заданный либо HTML_атрибутом, либо JavaSсript_свойством) использует возвращаемое значение для указания дальней_ шего поведения. Например, если с помощью обработчика события onsubmit объ_ екта Form выполняется проверка формы и выясняется, что пользователь запол_ нил не все поля, можно вернуть из обработчика значение false, чтобы предотвра_ тить фактическую передачу данных формы. Гарантировать, что форма с пустым текстовым полем передана не будет, можно следующим образом:
Как правило, если в ответ на событие броузер выполняет некоторое действие, пред_ лагаемое по умолчанию, можно вернуть false, чтобы предотвратить выполнение этого действия броузером. Вернуть false для отмены действия, предлагаемого по умолчанию, можно также из обработчиков событий onclick, onkeydown, onkeypress, onmousedown, onmouseup и onreset. Второй столбец табл. 17.1 содержит информацию о том, что происходит при возврате из обработчиков событий значения false.
Из правила о возвращении значения false для отмены действия есть одно исклю_ чение: когда пользователь наводит мышь на гиперссылку, по умолчанию бро_ узер отображает ее URL_адрес в строке состояния. Чтобы этого не случилось, не_ обходимо вернуть true из обработчика события onmouseover. Например, следую_ щий фрагмент выводит сообщение, не являющееся URL_адресом:
Никакой особой причины для этого исключения нет – просто так сложилось ис_ торически. Однако как отмечалось в главе 14, большинство современных бро_ узеров рассматривают возможность скрытия адреса назначения как нарушение принципов безопасности и запрещают ее. Таким образом, правило «вернуть false, чтобы отменить» ныне выглядит достаточно спорным.
Обратите внимание: от обработчиков событий никогда не требуется обязательно явно возвращать значение. Если значение не возвратить, то выполняется дейст_ вие, предлагаемое по умолчанию.