按Ctrl + F将焦点更改为输入并显示搜索

时间:2016-10-31 06:56:36

标签: javascript jquery focus

我有以下专注于输入字段的Javascript / jQuery代码。

window.addEventListener("keydown",function (e) {
    if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) { 
        e.preventDefault();
        $('#search').focus();
    }
})

但是我想这样做,以便如果用户在搜索字段的焦点后再次按下Ctrl + F,它将打开默认的浏览器搜索窗口。

我的想法是将代码更改为:

window.addEventListener("keydown",function (e) {
    if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)){
        if($('#search').not(":focus")) {
            e.preventDefault();
            console.log("Search is not in focus");
            $('#search').focus();
        } else {
            console.log("Default action of CtrlF")
            return true;
        }
    }
})

但这不起作用(它总是认为搜索不是焦点,即使它是)

1 个答案:

答案 0 :(得分:3)

试试这个



$(document).ready(function(){
 
  window.addEventListener("keydown",function (e) {
    if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)){
        if($('#search').is(":focus")) {
            console.log("Default action of CtrlF")
            return true;
        } else {
          
            e.preventDefault();
            console.log("Search is not in focus");
            $('#search').focus();
        }
    }
})
  

})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<input type="search" id="search" />
&#13;
&#13;
&#13;