Добавляем...


Возвращаемые значения
Одной из самых полезных возможностей обработчиков событий является то, что возвращаемые ими значения могут воздействовать на типичное поведение события, т.е. поведение, принятое для события по умолчанию. Поведение по умолчанию — это то, что должно случиться при нормальных условиях, когда событие происходит без обработки. Например, поведением по умолчанию для щелчка на ссылке является загрузка в браузер объекта, указанного ссылкой. Поведением по умолчанию при активизации кнопки Подача запроса (Submit) является отправка данных формы. Поведением по умолчанию для кнопки Сброс (Reset) является очистка полей формы, и т.д.
Чтобы отменить поведение по умолчанию для события, просто возвратите значение false от программы обработки события. Так, если обработчик события submit формы возвращает false, подача запроса формы отменяется. Точно так же, возвращение false программой обработчика события click для ссылки предотвращает загрузку соответствующего объекта в браузер. В таблице представлен список некоторых полезных событий и соответствующий им эффект возвращения значения false.
Обработчик события Эффект возвращения false
click Кнопки переключателей и флажки не устанавливаются. Для кнопки "Подача запроса" не выполняется отправка данных формы. Для кнопки "Сброс" не очищаются поля формы. Для ссылок не осуществляются переходы по ссылкам
dragdrop Отменяется перетаскивание
keydown Отменяется эффекты удерживания клавиш нажатыми
keypress Отменяются эффекты нажатия клавиш
mousedown Отменяется эффект, имеющий место по умолчанию (начало перетаскивания, режима выделения или перехода по ссылке)
mouseover Любые изменения свойств status или def aultstatus окна игнорируются браузером. (И наоборот, возвращение true приводит к тому, что любые изменения свойств status или default-Status окна отражаются браузером.)
submit Отменяется отправка данных формы

Польза указанной возможности станет более очевидной, если рассмотреть подходящий пример. Предположим, имеется следующий обработчик событий, требующий от пользователя подтвердить необходимость перехода по ссылке:

<a href="http://www.w3c.org/"
onclick="return confirm('Перейти к W3C?');">W3C</a>

Когда пользователь щелкает на ссылке, для соответствующего элемента запускается обработчик события click, который запрашивает у пользователя подтверждение. Если ответ пользователя положителен (ОК), то confirm () возвращает true, это значение возвращается обработчиком события, и браузеру позволяется продолжить действие. Если ответ пользователя отрицателен, то confirm () возвратит false, значение возвращается обработчиком события, и выполняемое по умолчанию действие загрузки URL отменяется. Типичной ошибкой программистов при использовании указанной возможности является то, что они забывают возвратить значение из программы обработки события. Если бы в предыдущем примере было

<a href="http://www.w3c.org/"
onclick="confirm('Перейти к W3C?1);">W3C</a>

то не имело бы никакого значения, что ответит на запрос пользователь — значение confirm () все равно не будет предъявлено браузеру.

Один из самых полезных вариантов использования значений, возвращаемых обработчиком событий, касается принятия данных форм. Желательно проверять данные формы, перед тем как они будут отправлены серверу, чтобы исключить наиболее типичные опечатки и отсечь неправильные данные. Рассмотрим следующий пример, в котором проверяются данные одного поля:

<script type="text/javascript">
<!--
function validateField(field)
{
if (field.value == "")
{
alert("Ввдите имя.");
field.focus();
return false;
}
return true;
}
// -->
</script>
<form action="/cgi-bin/login.cgi" method="get"
onsubmit="return validateField(this.username)">
Username: <input type="text" name="username" id="username" /> <input type="submit" value="Вход" />
</form>

Программе обработчика события передается ссылка на поле в текущей форме, и программа проверяет содержимое поля username. Если поле пусто, отображается сообщение об ошибке, затем вызывается событие получения фокуса ввода (focus) для поля, чтобы вернуть пользователя к пустому полю, и, наконец, возвращается false, чтобы отменить отправку формы серверу. Если же пользователем было введено какое-то значение, возвращается значение true, которое разрешает продолжить отправку формы.
Этот пример является только иллюстрацией совместного использования обработчиков событий, возвращаемых значений и методов событий. Более сложные примеры проверки данных форм вы увидите далее.


добавить комментарий
(без перезагрузки и регистрации)


10 случайных разделов

Что ищем на сайте ?


Примеры кода на сайте







@ 2008-2011 Amber
При использовании материалов ссылка на сайт обязательна
Яндекс.Метрика