Обработка событий
В основном JavaScript применяется для создания интерактивных документов. Диалоговый элемент INPUT формы расширен и может содержать указание на событие и функцию его обработки.
Основной синтаксис, используемый для указания обработчиков событий:
<TAGeventHandler="JavaScriptCode">
Здесь TAG - это некоторый тег HTML, а eventHandler - имя обработчика событий. Как правило, обработчик событий имеет имя, совпадающее с именем события, с приставкой "on" (см. таблицу 3.2). Заметим, что многие объекты имеют методы, эмулирующие события, но эти методы не запускают обработчик события.
Таблица 3.2. Типы событий и обработчиков
Событие
Ниже представлен пример диалога ввода имени пользователя и вывода сообщения приветствия. Нажатие кнопки мыши вне элемента ввода (событие onBlur - потеря фокуса) после набора строки текста приводит к вызову стандартной функции alert для выдачи сообщения.
<SCRIPT> functionsalut (name) { alert ("Здравствуйте, ", name, " !"); } </SCRIPT> <BODY> Введите Ваше имя: <FORM> <INPUTtype="text" name="user" onBlur="salut(this.value)" value=""> </FORM> </BODY>
Другой пример иллюстрирует обработку события onClick при нажатии видео-кнопки документа - вызов функции подтверждения confirm:
<FORM> <INPUTtype="button" name="btn1" value="Выход" onClick="confirm('Вы желаете покинуть страницу')"> </FORM>
Аналогичным образом строятся и другие более сложные диалоги, связанные с проверкой числовых значений при вводе.
<INPUTNAME="Button1" TYPE="BUTTON" VALUE="ClickHere" OnClick='MsgBox " Wonderfultobehold."'>
Отметим, что вызов функции выделен апострофами, а фраза, которая должна появится в диалоговом окне, кавычками. Можно указать несколько действий, разделяя их двоеточием (:).
Также можно написать скрипт в контейнере <SCRIPT>, указав явным образом элемент формы и событие:
<SCRIPTLANGUAGE="VBScript" EVENT="OnClick" FOR="Button1"> MsgBox " Wonderfultobehold." </SCRIPT>
В этом случае, после того как Вы определили в контейнере <SCRIPT> событие и элемент управления, к которому оно относиться, уже не надо пользоваться выражениями Sub и EndSub.
В HTML-страничках можно использовать различные сочетания управляющих элементов и процедур обработки событий. Например, в следующем примере показано, как можно проверить правильность информации, введенной пользователем:
<HTML> <HEAD><TITLE>SimpleValidation</TITLE> <SCRIPTLANGUAGE="VBScript"> SubSubmit_OnClick DimTheForm SetTheForm = Document.ValidForm IfIsNumeric(TheForm.Text1.Value) Then IfTheForm.Text1.Value < 1 OrTheForm.Text1.Value > 10 Then MsgBox "Pleaseenteranumberbetween 1 and 10." Else MsgBox "Thankyou." TheForm.Submit' Datacorrect; sendtoserver. EndIf Else MsgBox "Pleaseenteranumericvalue." EndIf EndSub </SCRIPT> </HEAD> <BODY> <H3>SimpleValidation</H3><HR> <FORMNAME="ValidForm"> Enteravaluebetween 1 and 10: <INPUTNAME="Text1" TYPE="TEXT" SIZE="2"> <INPUTNAME="Submit" TYPE="BUTTON" VALUE="Submit"> </FORM> </BODY> </HTML>
Этот пример отличается от предыдущих, тем, что здесь для проверки содержимого поля ввода используется свойство Value. Для того, чтобы обратиться к свойству Value, необходимо указать имя поля ввода. Всегда нужно указывать полное имя объекта формы - Document.ValidForm.Text1. Но чтобы всегда не писать длинные имена, можно поступить следующим образом: сначала необходимо объявить некоторую переменную (в примере TheForm), а затем используя выражение Set поставить ей в соответствие имя формы. После этого объявленную переменную можно использовать в качестве имени формы.
В последнем примере использовалась зарезервированная кнопка Submit, которая обычно используется для отправки данных из формы на сервер. Но в нашем примере при нажатии этой кнопки запускается функция проверки правильности введенной информации. В случае корректности информации, введенной пользователем, необходимо отправить ее на сервер для обработки. Это делается с помощью метода Submit. Этот метод вызывается в примере следующей строкой:
TheForm.Submit