如何在按键时将文本框对焦而不将关键字输入其中

时间:2014-09-17 05:36:41

标签: javascript jquery google-chrome

我想在用户按下' 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();           
    }
}
});

3 个答案:

答案 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