javascript - 分配 "/"热键以在搜索框上创建焦点用户

标签 javascript jquery html

我正在构建的网站顶部有一个搜索栏。与 Trello 或 Gmail 类似,我希望当用户按下“/”键时,他们的焦点就会转到该搜索框。

我的 JavaScript 看起来像这样:

document.onkeydown = checkShortcuts;
function checkShortcuts(event) {
    console.log(event.keyCode);
    if (event.keyCode == 191) {  // 191 == "/" key
        var text_input = document.getElementById ('sitesearch');
        text_input.focus ();
        text_input.select ();
        $('#sitesearch').val("");
    }
}

我遇到的问题是,按下/键后,焦点不仅放在我的搜索栏中,而且“/”字符也显示在我的搜索栏中。我尝试通过执行 jquery .val("") 来删除它,但这是在输入字母之前进行的。

如果我将 onkeydown 移至 onkeyup,那么当我输入“/”时,我会在 Firefox 中看到快速查找窗口,这也不是我想要的。

有什么想法可以设置焦点但不在文本字段中键入该字符吗?

最佳答案

如果你已经混合了 JS/jQuery,你可以让它更短,例如

$(document).keydown(function() {
  if(event.keyCode == 191) {
     $('#sitesearch').focus();
     return false;
  }
});

关于javascript - 分配 "/"热键以在搜索框上创建焦点用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23023223/

相关文章:

Javascript 在执行数组 'push' 时为数组键命名

javascript - 谷歌搜索中的网站截图

javascript - jquery - bootstrap datetimepicker viewMode 月格式

javascript - 如何使用 JQuery 将颜色选择器插入到 html 中

javascript - 在运行时定期更改 HTML 正文的内容 - NodeJS

javascript - 可以将事件添加到 d3 调度程序吗?

javascript - AngularJS 的时间范围 slider

javascript - 未发送 Ajax 的 header (通过 Electron WebView )

javascript - Grails - Ajax 提交不工作?

html -\subparagraph{} 相当于 html