2011-06-05 65 views
0

我有几个输入文本字段都是分开的,但我希望当你开始输入时1获得专注。在keydown输入文本字段的焦点

我想我已经用jQuery .bind()这样做,但我不知道:

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

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

jquery有没有办法让这种情况发生?

回答

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

使用jQuery .one()只在页面上绑定一次(这比绑定/解除绑定更方便)。然后,如果你想赶上keyChar,并将它推入现场,所以它们不会“失去”第一次击键。

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/

+0

Thnaks尼古拉斯实现该诀窍 – 2011-06-05 19:24:31