jQuery检测键盘按,然后焦点到文本框

时间:2013-07-30 07:50:33

标签: javascript jquery

我有jQuery函数,可以检测键盘中的某些键是否被按下。到目前为止工作,例如,如果我按“P”,那么它将集中到文本框。

$(document).keyup(function(e)
{
if (e.keyCode == 51 || e.keyCode == 52 || e.keyCode == 80 || e.keyCode == 65)
{
    $("#code_read_box").focus();
}
});

现在我想按“P”时,“P”也会设置为文本框。

<input type="text" id="code_read_box" value=""/>

有什么建议吗?

DEMO here

2 个答案:

答案 0 :(得分:2)

使用String.fromCharCode

String.fromCharCode(e.keyCode)

演示:http://jsfiddle.net/hw2g5/

您的代码:

$(document).keyup(function(e) {
  if (e.keyCode == 51 || e.keyCode == 52 || e.keyCode == 80 || e.keyCode == 65) {
    $("#code_read_box").focus();
    $("#code_read_box").val(String.fromCharCode(e.keyCode));
  }
});

如果你想附加值,那么:

$("#code_read_box").val($("#code_read_box").val() + String.fromCharCode(e.keyCode));

答案 1 :(得分:0)

解决。

$(document).keyup(function(e) {
    var key = String.fromCharCode(e.keyCode);

    if (key.match(/[34PA]/) && !$('input').is(':focus')) {
        $('input').focus();
        $('input').val($('input').val() + key);
    }
});