Javascript 如何将文本框的焦点放在按键上,而不在其中输入关键字

Javascript 如何将文本框的焦点放在按键上,而不在其中输入关键字,javascript,jquery,google-chrome,Javascript,Jquery,Google Chrome,当用户在键盘上按“S”关键字时,我想将焦点放在文本框中。但问题是,文本框中也输入了“S”关键字(这只发生在chrome中)。这是我的代码 $(document).keypress(function(event){ if(document.getElementById('search')!==null) { if(event.which==115 && event.target.nodeName=='BODY') // WHEN USER PRESS 'S' KEYWO

当用户在键盘上按“S”关键字时,我想将焦点放在文本框中。但问题是,文本框中也输入了“S”关键字(这只发生在chrome中)。这是我的代码

$(document).keypress(function(event){
if(document.getElementById('search')!==null)
{
    if(event.which==115 && event.target.nodeName=='BODY')   // WHEN USER PRESS 'S' KEYWORD IN KEYBOARD ONLY
    {
        $('#search').focus();           
    }
}
});
你也可以试试

(event.keyCode==83) // 83 is keyCode for "s"

使用
event.preventDefault()


通过使用event.preventDefault()可以限制按键以更新文本框值。我添加了event.which==83,以防caps启用

 $(document).keypress(function (event) {
        if (document.getElementById('search') !== null) {

            if ((event.which == 115 || event.which == 83) && event.target.nodeName == 'BODY')   // WHEN USER PRESS 'S' KEYWORD IN KEYBOARD ONLY
            {
                $('#search').focus();
                event.preventDefault();
            }
        }
    });
检查演示中的event.preventDefault()我怎么会错过这个谢谢,它可以工作。
“s”。charCodeAt(0)==115
“s”。charCodeAt(0)==83
 $(document).keypress(function (event) {
        if (document.getElementById('search') !== null) {

            if ((event.which == 115 || event.which == 83) && event.target.nodeName == 'BODY')   // WHEN USER PRESS 'S' KEYWORD IN KEYBOARD ONLY
            {
                $('#search').focus();
                event.preventDefault();
            }
        }
    });