使用 Jquery 将焦点设置为使用 keydown 输入

use Jquery to set focus to input with keydown

我正在使用一个有搜索框的网站,我很喜欢它,所以当你按下 space 栏但没有选择搜索文本框时,搜索文本框会获得焦点并且有它的文本被清除了。我已经完成了,但是检查搜索框是否有焦点的功能没有正常运行。对我的代码有什么建议吗?事实上,如果您按下 space 栏,它会清除搜索框,即使您正在搜索框中输入内容也是如此。

document.addEventListener('keydown', function (event) {
        if (event.keyCode == 32) {
            if ($('#searchTextBox').not(':focus')) {
                $("#searchTextBox").focus().select();
            }
        }
    });

当您在文档上委托 keydown 事件时,您还可以使用 event.target 检查 source/target 是否是文本框本身。如果事件来自文本字段,则忽略它。

$(document).on('keydown', function (event) {  
    if (event.which == 32 && event.target.id != 'searchTextBox') 
        $("#searchTextBox").focus().select();                
});

工作示例:https://jsfiddle.net/DinoMyte/mdu5fxkq/3/

也许这会奏效

    $(document).ready(function(){
       $(document).on('keydown',function(event){
          if(event.keyCode==32){
               if(!$('#search').is(':focus')) {
                    $('#search').focus().select();  
                }
          }
       });
    });

您好!

更简单 检查 keyCode,因为 32 用于空格键,您可以使用其代码

来使用任何其他键码
 $(document).on('keydown', function (event) {  
        if (event.keyCode== 32) {
                $("#searchTextBox").focus().select();
            
        }
    });