2013-04-25 80 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++; 
    } 
    }); 
});