Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции - JavaScript.docx
Скачиваний:
37
Добавлен:
23.08.2019
Размер:
402 Кб
Скачать
☆

Метод reset()

Метод reset() (не путать с обработчиком события onReset, рассматриваемым ниже) позволяет восстановить значения полей формы, заданные по умолчанию. Другими словами, вызов методаreset() равносилен нажатию на кнопку INPUT типа TYPE=reset, но при этом саму эту кнопку создавать не требуется.

<FORM NAME=f>

<INPUT VALUE="Значение по умолчанию" SIZE=30>

<INPUT TYPE=button VALUE="Изменим текст в поле ввода"

onClick="document.f.elements[0].value='Изменили текст';">

</FORM>

<A HREF="javascript:document.f.reset();void(0);">

Установили значение по умолчанию</A>

В данном примере если кликнуть по гипертекстовой ссылке, то в форме происходит восстановление значений полей по умолчанию.

События объекта Form Событие Submit

Событие Submit возникает (и соответствующий обработчик события onSubmit вызывается) при нажатии пользователем на кнопку типа submit или при выполнении метода submit(). Действие по умолчанию, которое выполняет браузер при возникновении этого события - отправка введенных в поля формы данных на сервер, указанный в атрибуте ACTION, с помощью метода, указанного в атрибуте METHOD, с использованием способа кодирования, указанного в арибуте ENCTYPE, и с указанием того, что результаты работы CGI-скрипта должны быть показаны в окне или фрейме с именем, указанным в атрибуте TARGET.

Фукцию обработки этого события можно переопределить и даже вовсе отменить. Для этой цели введен атрибут onSubmit="код_программы" у контейнера <FORM>. В нем можно указать действия (JavaScript-код), какие должны выполняться при возникновении этого события. Порядок выполнения этих действий и действий браузера, а также использование оператора return falseдля отмены последних, полностью аналогичны тем, что описаны ниже для onReset. Пример:

<SCRIPT>

function TestBeforeSend()

{

if(document.f.query.value=='')

{

alert('Пустую строку не принимаем!');

return false;

}

else return true;

}

</SCRIPT>

<FORM NAME=f METHOD=post onSubmit="return TestBeforeSend();"

ACTION="http://www.intuit.ru/rating_students/">

Ваше имя пользователя на intuit:<INPUT NAME=query>

<INPUT TYPE=submit VALUE="Посмотреть рейтинг">

</FORM>

В этом примере следует обратить внимание на конструкцию return TestBeforeSend(). Сама функция TestBeforeSend() возвращает значения true или false. Соответственно, данные либо отправляются на сервер, либо нет.

Событие Reset

Событие Reset возникает (и соответствующий обработчик события onReset вызывается) при нажатии пользователем на кнопку типа reset или при выполнении метода reset(). Действие по умолчанию, которое выполняет браузер при возникновении этого события - восстановление значений по умолчанию в полях формы. Однако функцию обработки этого события можно переопределить и даже вовсе отменить. Для этой цели введен атрибут onReset="код_программы"у контейнера <FORM>. В нем можно указать действия (JavaScript-код), какие должны выполняться при возникновении этого события. Браузер сначала выполняет эти действия, а затем - свое действие по умолчанию. Но если последним оператором в обработчике onReset будет return false, то действие браузера по умолчанию выполняться не будет. Этот прием называетсяперехватом события. Пример:

<FORM onReset="javascript: alert('Не дадим восстановить!');return false;">

<INPUT VALUE="Измените этот текст" SIZE=30>

<INPUT TYPE=reset VALUE="Восстановить">

</FORM>

Здесь команда return false предотвратила восстановление значения поля. Команда return true, равно как и отсутствие оператора return, позволило бы браузеру продолжить обработку события - и восстановить значение поля.