1

看起来很简单,但我不知道如何从 Document DOM 中截取 javascript 上的数字

    $(document).keypress(function (e) {
        if (e.keyCode == xx) {
            alert();
        }
    });
4

4 回答 4

7

数字是 48 到 57,所以...

$(document).keypress(function (e) {
    var key = e.keyCode || e.charCode;
    if (key >= 48 && key <= 57) {
        alert('You pressed ' + (key - 48));
    }
});

看演示

于 2012-06-03T05:01:24.927 回答
2

来源:http ://www.quirksmode.org/js/keys.html

按键事件在 Firefox 中产生 0 的 keyCode,在其他任何地方产生 ASCII 字符值。按键事件在 Firefox 中产生 ASCII 字符值的 charCode。因此,您应该使用(e.keyCode || e.charCode)来获取字符值。

另请注意,您的代码也不起作用,因为alert应该接受一个参数。至少在 Firefox 中,不alert带参数调用会引发异常。

解决了这两个问题后,您的代码现在将是:

$(document).keypress(function (e) {
    if ((e.keyCode || e.charCode) == <number from 48..57 inclusive>) {
        alert('something');
    }
});

示例:http: //jsfiddle.net/gRrk6/

于 2012-06-03T05:01:25.303 回答
0

$(document).keydown(function(event){ if(event.keyCode == 13) { alert('you pressed enter');} }); 将 13 替换为密钥代码,请参阅此处了解详细信息:http: //www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

于 2012-06-03T05:00:32.987 回答
0

来自以下链接的 JavaScript 事件 KeyCode 测试页视图

你应该注意到事件[keyCode, charCode, which] 和这个受浏览器影响的测试页面之间的差异,即我在safari 上测试了它, onKeyPress总是空的

JavaScript 事件 KeyCode 测试页

于 2012-06-03T05:14:36.703 回答