使用Javascript按下这两个键时,如何聚焦搜索表单输入字段?

shift + /将生成?

因此,基本上,在按下问号的按键时,搜索表单将自动聚焦。



这是我当前的bootstrap 3搜索表单代码:

<form class="navbar-form navbar-right" role="form" method="post" action="{$WEB_ROOT}/knowledgebase.php?action=search">
    <div class="form-group">
        <input id="inputMessage" class="form-control" placeholder="Search website.com" type="text" name="search">
    </div>
    <button type="submit" class="btn btn-default"></button>
</form>

最佳答案

检查此代码。

创建一个对象来存储按键并添加一个eventListener,该事件监听器会将每次按键都添加到Object中。

然后检查keyCodes Shift(16)和/(191)



var map = {}; //to store the keycodes
onkeydown = onkeyup = function(e){
    e = e || event;

    map[e.keyCode] = e.type == 'keydown';

    if(map["16"]==true && map["191"]==true){  // 16 => shift and 191 /
      e.preventDefault();
      var elm=document.getElementById('inputMessage');
      elm.focus();

    }
    /* insert conditional here */
}

<form class="navbar-form navbar-right" role="form" method="post" action="{$WEB_ROOT}/knowledgebase.php?action=search">
    <div class="form-group">
        <input id="inputMessage" class="form-control" placeholder="Search website.com" type="text" name="search">
    </div>
    <button type="submit" class="btn btn-default"></button>
</form>

07-24 14:57