如何在不输入关键字的情况下将文本框集中在按键上

How to focus a text box on pressing a key without entering that keyword into it

本文关键字:文本 集中 情况下 输入 关键字      更新时间:2023-09-26

当用户在键盘上按下"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.preventDefault()

$(document).keypress(function(event){
    if($('#search').length)
    {
        console.log(1);
        if(event.which==115 && event.target.nodeName=='BODY')   // WHEN USER PRESS 'S' KEYWORD IN KEYBOARD ONLY
        {
            event.preventDefault();
            $('#search').focus();       
        }
    }
});

您也可以尝试

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

通过使用event.prventDefault(),您可以限制按键以更新文本框值。我添加了事件。如果上限处于启用状态,该事件==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();
            }
        }
    });

检查JSFiddler Demo 的演示