我想在用户按下' S'时关注文本框。键盘中的关键字。但问题在于' S'关键字也在文本框中输入(这只发生在chrome中)。我在这里如何做到这一点就是我的代码。
$(document).keypress(function(event){
if(document.getElementById('search')!==null)
{
if(event.which==115 && event.target.nodeName=='BODY') // WHEN USER PRESS 'S' KEYWORD IN KEYBOARD ONLY
{
$('#search').focus();
}
}
});
答案 0 :(得分:1)
使用event.preventDefault()
$(document).keypress(function(event){
if($('#search').length)
{
console.log(1);
if(event.which==115 && event.target.nodeName=='BODY') // WHEN USER PRESS 'S' KEYWORD IN KEYBOARD ONLY
{
event.preventDefault();
$('#search').focus();
}
}
});
答案 1 :(得分:0)
您也可以尝试
(event.keyCode==83) // 83 is keyCode for "s"
答案 2 :(得分:0)
通过使用 event.preventDefault(),您可以限制按键以更新文本框值。我已经添加了 event.which == 83 ,以防上限。
$(document).keypress(function (event) {
if (document.getElementById('search') !== null) {
if ((event.which == 115 || event.which == 83) && event.target.nodeName == 'BODY') // WHEN USER PRESS 'S' KEYWORD IN KEYBOARD ONLY
{
$('#search').focus();
event.preventDefault();
}
}
});
查看演示JSFiddler DEMO