Предотвращение действий по-умолчанию

Для некоторых тэгов существуют действия, которые выполняются по-умолчанию. Например, при щелчке на ссылку выполняется переход на другую страницу, при нажатии на кнопку submit выполняется отправка формы и т.д. Если возникает необходимость предотвратить это действие (например при проверке данных формы), можно использовать функцию preventDefault() объекта event (для DOM-совместимых браузеров) или установить значение returnValue объекта event в false (для Internet Explorer). Код выглядит примерно следующим образом:

function someFunction( oEvent ) {
	// ... функция выполняет какие либо действия

	// ... затем предотвращает действие по-умолчанию
	// получаем объект event
	oEvent = oEvent || window.event;
	if(oEvent){
		if(oEvent.preventDefault)
			oEvent.preventDefault();	// для DOM-совместимых браузеров
		else
			oEvent.returnValue=false;	// для IE
	}
}

Здесь мы сначала получаем объект event, затем проверяем, доступна ли функция preventDefault для него. Если нет, то устанавливаем для объекта event свойство preventDefault в false. Теперь, если к примеру назначить эту функцию к событию onsubmit для формы, то по нажатию на кнопку submit, отправка формы не произойдет.

Если обработчик событий для элементов выставлен в виде аттрибута, то предотвратить действие по-умолчанию можно вернув значение false из обработчика. Нарпимер для события onclick ссылки:

<a href="/url/here" onclick="return false;">Ссылка</a>

<!-- или так, при условии что функция Func возвращает false -->
<a href="/url/here" onclick="return Func();">Ссылка</a>

Либо для события onsubmit формы:

<form name="myForm" action="" method="post" onsubmit="return validate()">
	...
</form>

Здесь, если функция validate() возвращает false, то отправка формы блокируется, если true, то форма отправляется.

Maklay.com - Большой каталог товаров для спорта и активного отдыха

JSToolbox создан на основе WordPress