Для некоторых тэгов существуют действия, которые выполняются по-умолчанию. Например, при щелчке на ссылку выполняется переход на другую страницу, при нажатии на кнопку 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, то форма отправляется.
