Firefox 中的 JavaScript 键盘键代码 0

标签 javascript jquery firefox

我有以下代码,并且尝试只允许输入 0-9 3 位数字,但仍然允许用户使用箭头键、退格键和删除键。

它在其他浏览器中工作,但在 Firefox 中,控制台的输出显示箭头键和删除键注册为键代码 0。什么给出?

代码:

$input.
    keypress(function(e) {
        var currentLength = $input.val().length;
        var c = e.which;
        console.log("key", c);
        //0=48, 9=57, 37-40 = arrow keys 8= backspace,  46=delete
        if (c === 8 || c === 46 || (c >= 37 && c <=40)) {
            //delete, backspace, and arrow keys are allowed
        } else if (c < 48 || c > 57 || currentLength >= 3) {
            e.preventDefault();
        }
    }).on("paste", function(e) {
        e.preventDefault();
    });

fiddle :http://jsfiddle.net/2cjpdfcy/

最佳答案

替换这个:

var c = e.which;

与:

var c = e.keyCode || e.which;

一切都会奏效。

http://jsfiddle.net/2cjpdfcy/2/

关于Firefox 中的 JavaScript 键盘键代码 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33615181/

相关文章:

javascript - 图像放大/缩小在定位图像时无法正常工作

javascript - Firefox 流式传输两个摄像头

javascript - Zend Framework 1应用程序中的缓存清除静态 Assets

javascript - 不需要的事件覆盖

javascript - 如何获取父窗口中打开的子窗口的引用?

javascript - 如何从一个文件加载另一个文件中的div(在iframe内)

Javascript,如何使用 DOM xpath 选择 <br> 标记之间的内容

javascript - 我如何为 jqGrid 中的列赋值?

python - 使用 Selenium Python 保存大型 html 文件时出现 WebDriverException : Message: Exception. .. "Failure"nsresult: "0x80004005 (NS_ERROR_FAILURE)"

android - EventSource 不会在 Android Firefox 上自动重新连接