Возможно (совместимый перекрестный браузер) ОТМЕНИТЬ нажатие клавиши после того, как пользователь сделал его (например, на текстовом поле)
Код, который я в настоящее время использую, редактирует значение текстового поля после того, как нажатие клавиши было отображено:
$('.number').keypress(function() {
this.value = this.value.replace(/[^0-9\.]/g, '');
});
РЕШЕНО (И ОБНОВЛЕНО)
Извините, я не тестировал наиболее очевидный вариант - который сработал:
$('.number').keypress(function(event) {
return /[0-9\.]/.test(String.fromCharCode(event.keyCode));
});
$('.number').keypress(function() {
if ( this.value == 'foobar' ){
// "Cancel" keystroke
return false;
}
this.value = this.value.replace(/[^0-9\.]/g, '');
});