输入文本字段专注于keydown

时间:2011-06-05 16:44:54

标签: jquery input focus field keydown

我有几个输入文本字段都是独立的,但我希望当你开始输入1时会有所集中。

我想我必须使用jquery .bind()这样做,但我不确定:

$(document).bind('keydown',function(e){
    $('#defaultInput').focus();
    $(document).unbind('keydown');
});

你可以继续这样做。我现在的代码只允许我执行此操作一次,而不检查我是否在另一个框中输入。

有没有办法用jquery来实现这个目标?

2 个答案:

答案 0 :(得分:1)

如果您的页面上有以下3个输入字段:

<input type="text" id="t1" />
<input type="text" id="t2" />
<input type="text" id="t3" />

使用以下JS,如果焦点不在t1或t3或页面上的任何其他输入元素上,它将仅聚焦第二个。

$(document).bind('keydown',function(e){
    if ($(':focus:not("input")').length){
        $('#t2').focus();
    }
});

示例:http://jsfiddle.net/niklasvh/gPs45/

答案 1 :(得分:0)

$(document).one('onkeydown',function(e){
  $(':input:first').focus();
});

使用jQuery .one()仅在页面上绑定一次(这使得它比绑定/解除绑定更方便)。然后,如果你想抓住keyChar并将其推入现场,那么它就取决于你,这样他们就不会“失去”第一次击键。