Во-первых, если вы обнаружите печатный символ, например пробел, вам будет лучше с событием keypress
. Во-вторых, способ предотвратить действие по умолчанию - это вызвать preventDefault()
для события в браузерах, отличных от IE, и установить для свойства returnValue
события значение false
в IE.
var button = document.getElementById("button");
button.onkeypress = function(evt) {
evt = evt || window.event;
var charCode = evt.keyCode || evt.which;
if (charCode == 32) {
if (evt.preventDefault) {
evt.preventDefault();
} else {
evt.returnValue = false;
}
}
};
Я не эксперт по jQuery, и я предполагаю, что он позаботится о том, чтобы получить для вас событие:
$("button").keypress(function(evt) {
var charCode = evt.keyCode || evt.which;
if (charCode == 32) {
if (evt.preventDefault) {
evt.preventDefault();
} else {
evt.returnValue = false;
}
}
});