JQuery + ie8: Backspace не обнаруживается? - PullRequest
1 голос
/ 08 декабря 2010

Я хочу отключить возврат в одном из моих полей ввода, поэтому я написал следующий jquery:

$("#noBackspacesHere").keypress(function(e){
            if(e.which == "8"){
                return false;
            }
        });

Это нормально работает в Firefox, но, похоже, не работает в ie8. Я уже читал, что у .keyCode есть проблемы, поэтому я выбрал .which.

Ответы [ 2 ]

3 голосов
/ 08 декабря 2010

@ Код Джонатона Болстера не работает в Opera.

Это должно работать в Opera, IE, FF и Chrome.

$("#noBackspacesHere").bind("keypress keydown", function(e) {
    if (e.which == 8) {
        e.preventDefault();
    }
});

Кроме того, e.which является предпочтительным способом проверки кодов клавиш, поскольку jQuery нормализует объект события, так что which всегда будет присутствовать независимо от того, какой браузер вы используете.

2 голосов
/ 08 декабря 2010

Я только что поиграл с событиями клавиатуры, и keydown поможет вам здесь:

$("#noBackspacesHere").keydown(function(e) {
    if (e.which == 8) {
        return false;
    }
});

Пример: http://jsfiddle.net/jonathon/7xBRf/

Я сделал typeof(e.which), и он сказал, что это число, поэтому вам не нужны кавычки вокруг него. Я протестировал это в IE8, Chrome и FF, и, похоже, у них это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...