jquery + ie8:没有检测到退格?

时间:2010-12-08 13:50:21

标签: jquery internet-explorer internet-explorer-8

我想在我的一个输入字段中禁用退格键,所以我编写了以下jquery:

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

这在firefox中工作正常,但似乎在ie8中不起作用。 我已经读过.keyCode有问题,这就是为什么我去了.which。

2 个答案:

答案 0 :(得分:3)

@Jonathon Bolster的代码对Opera不起作用。

这应该适用于Opera,IE,FF和Chrome。

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

此外,e.which是检查密钥代码的首选方法,因为jQuery会规范化事件对象,因此无论您使用何种浏览器,which都将始终存在。

答案 1 :(得分:2)

我刚刚玩过键盘事件,keydown会帮助你:

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

示例:http://jsfiddle.net/jonathon/7xBRf/

我做了typeof(e.which)并且说它是一个数字,所以你不需要它周围的引号。我已经在IE8,Chrome和FF中对它进行了测试,它似乎对他们有效。