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

时间:2016-01-28 19:33:32

标签: javascript jquery focus

我正在使用一个有搜索框的网站,我希望如此,当您按空格键但没有选择搜索文本框时,搜索文本框会获得焦点并将其设置为“#”。文字清除了。我已经完成了,但检查搜索框是否具有焦点是否正常运行。我的代码有什么建议吗?如果按空格键,它会清除搜索框,即使您在搜索框中输入内容也是如此。

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

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

也许这会起作用

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

素不相识!

答案 2 :(得分:0)

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

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