Оглавление

16.8. Действия по умолчанию и их отмена

Для многих событий назначены действия по умолчанию, то есть действия, которые Web-браузер выполняет в ответ на возникшие в документе события. Например, при щелчке на гиперссылке действием по умолчанию будет переход по указанному URL-адресу, нажатие кнопки Отправить приводит к отправке данных формы и т. д.

 

Иногда действия по умолчанию необходимо прервать. Например, при отправке данных формы можно проверить их на соответствие ожидаемым и, если они не соответствуют, прервать отправку. Для этого необходимо вернуть значение false. Кроме возврата значения false для отмены действий по умолчанию можно воспользоваться методом preventDefauit() объекта event или свойством returnValue.


В листинге 37 приведен пример проверки правильности ввода E-mail и прерывания перехода по гиперссылке.

 

Листинг 3.37. Прерывание действий по умолчанию


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
         "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
 <title>Прерывание действий по умолчанию</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <script type="text/javascript"> <!-- function f_test() { var p = /^[a-z0-9_\.\-]+@([a-z0-9\-]+\.)+[a-z]{2,6}$/i; // Получаем значение поля email var email = document.forms[0].email.value; if (p.test(email)) { if (window.confirm("Отправить данные формы?")) { return true; // Отправляем } else return false; // Прерываем } else { window.alert("E-mail введен неправильно"); return false; // Прерываем } } function f_event(e) { e = e || window.event; if (e.preventDefault) e.preventDefault(); else e.returnValue = false; window.alert("Перехода по ссылке не будет!"); } //--> </script> </head> <body> <form action="file.php" method="GET" onsubmit="return f_test();"> <div> E-mail:<br> <input type="text" name="email"><br> <input type="submit" value="Отправить"> </div> </form> <p> <a href="file.html" onclick="window.alert('Перехода по ссылке не будет!'); return false;">Нажмите для перехода по ссылке</a><br><br> <a href="file.html" onclick="f_event(event);"> Нажмите для перехода по ссылке</a> </p> </body> </html>


Посмотреть пример...


Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити