При использовании этого стиля обработчика, верните false
из кода обработчика:
<a4j:commandButton value="TestButton" onclick="alert('button clicked'); return false;"/>
Как сказал theatrus , однако, если ваша цель - отключить кнопку, лучше отключить кнопку, а не предотвращать ее нажатие. Но с точки зрения вашего вопроса «как отключить щелчок левой кнопкой мыши» это ответ.
Более подробно, есть два разных способа присоединить обработчики событий:
DOM0 (стиль, который вы использовали): верните false
из кода обработчика, чтобы остановить событие (не допустить его переполнение другими элементами) и предотвратить действие по умолчанию:
<someElement onclick="return false;">
DOM2 (с кодом JavaScript): обработчики DOM2 подключаются через addEventListener
(или attachEvent
, в IE). Вот пример, предполагая элемент с id
"foo":
// Attaching:
var elm = document.getElementById("foo");
if (elm.attachEvent) {
elm.attachEvent("onclick", handler);
}
else if (elm.addEventListener) {
elm.addEventListener("click", handler, false);
}
// Handler:
function handler(event) {
// DOM standard is that `event` is an argument to the
// handler; IE uses a global event object instead.
// This line handles that.
event = event || window.event;
// Cancelling bubbling:
if (event.stopPropagation) {
// DOM standard
event.stopPropagation();
}
else {
// Older mechanism
event.cancelBubble = true;
}
// Preventing default action:
if (event.preventDefault) {
// DOM standard
event.preventDefault();
}
else {
// Older mechanism
event.returnValue = false;
}
}
Некоторые справочные материалы: