本文介绍了jQuery按键37问题,'%'和[左箭头]在IE 10中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

早上好

我在IE 10上遇到问题,我的按键仍然可以输入'%',但是FF和Chrome都没有此问题.我发现键37是[左箭头],与ASCII中的'%'相匹配.我的示例代码如下:

I facing a issue on the IE 10 where my keypress still can enter '%' but the FF and Chrome no such issue.I found out that the key 37 is the [ left arrow ] which match with '%' in ASCII.My sample code as below:

$('#refId').bind("keypress", function(event) {
            // allow  letters, numbers and keypad numbers ONLY
            var key = event.charCode;
            if((key >= 48 && key <= 57) ||
                (key >= 65 && key <= 90) ||
                (key >= 97 && key <= 122)){
                return true;
            }

            //allow backspace, tab, left arrows, right arrow, delete
            key = event.keyCode;
            if(key == 8 ||
                    key == 9 ||
                    key == 37 ||
                    key == 39 ||
                    key == 46){
                return true;
            }

            return false;
    });

能告诉我一些解决方法吗?

Can give me some idea how to fix this?

谢谢.-fsloke

Thanks.-fsloke

推荐答案

改为使用var key = event.which;并加入if语句.

Use var key = event.which; instead and join the if-statements.

- https://api.jquery.com/event.which/

$('#refId').on("keydown", function(event) {
    // allow letters, numbers and keypad numbers ONLY
    var key = event.which;
    if((key >= 48 && key <= 57) ||
        (key >= 65 && key <= 90) ||
        (key >= 97 && key <= 122) ||
        key == 8 ||
        key == 9 ||
        key == 37 ||
        key == 39 ||
        key == 46) {
        return true;
    }

    return false;
});

这篇关于jQuery按键37问题,'%'和[左箭头]在IE 10中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-16 07:34