2013-04-25 76 views
2

我从jquery事件得到了一些奇怪的结果,尽管我并不完全相信它是否是jQuery问题。我希望一些jquery极客可以回答这个问题。使用jquery更改事件时tab键不能按预期工作

我在我的html页面中有下面的代码片段,当用户在first输入框中输入长度为9的字符串时,将焦点更改为second输入框。这种自动对焦工作正常。但是当我按下从first输入框中的标签时,它总是跳过second输入框并转到下一个html元素到second输入框。

$("input.first").change(function (e){ 
    var text = $(this).val(); 
    if (text.length == 9){ 
     $("input[id='second']").focus(); 
    } 
}); 

我试着把tabindex属性给html元素,但它仍然继续其不良行为。但最后,当我将change事件更改为keypress事件标签密钥开始按预期流动时。

有没有人可以解释为什么会发生这种情况?感谢任何答案。

+1

一点题外话'$( “输入[ID = '第二']”)'很不好'$( “#第二”)'会做 – 2013-04-25 13:39:37

+1

似乎罚款这里http://jsfiddle.net/ arunpjohny/qmWBR/1/ – 2013-04-25 13:41:47

+0

如果这种行为根据first.length> 8而不同,我会说,作为一个完整的随机猜测,这是因为更改是在制表符之前处理的。所以你的第二个焦点,然后该选项卡处理=>下一个元素。 – jbl 2013-04-25 13:48:24

回答

1

您可以将选项卡索引添加到手动控制。我希望它会起作用。

$(function() { 
    var tabindex = 1; 
    $('input').each(function() { 
    if (this.type != "hidden") { 
     var $input = $(this); 
     $input.attr("tabindex", tabindex); 
     tabindex++; 
    } 
    }); 
});