简体   繁体   中英

jQuery detect keyboard press then focus to textbox

I have jQuery function that detect if some key in keyboard pressed. So far that worked, example if I press "P" then it will focus to textbox.

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

Now I want when I press "P", "P" will set too to textbox.

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

Any advice ?

DEMO here

Use String.fromCharCode :

String.fromCharCode(e.keyCode)

Demo: http://jsfiddle.net/hw2g5/

Your code:

$(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));
  }
});

If you want to append values, so:

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

Solved.

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM