2011-11-04 112 views
2

我使用這個代碼進入數值到文本框停止用戶:Tab鍵不起作用

$('input[type=text]').keydown(function(event) { 
    // Allow only backspace and delete 
    if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 190) { 
     // let it happen, don't do anything 
    } 
    else { 
     // Ensure that it is a number and stop the keypress 
     if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) { 
      event.preventDefault(); 
     } 
    } 
}); 

然而,這種停止從專注於下一個文本框TAB鍵。如果我將add this code添加到keydown事件中,Tab鍵可以工作,但用戶無法在文本框中輸入任何值,並且Tab鍵只會關注緊接的下一個框。之後,當再次按下Tab鍵時,它不會進入下一個框。

var code = event.keyCode || event.which; 
if (code == 9) { 
    alert ("Tab key pressed"); 
} 
return false; 

下面的代碼在的jsfiddle:http://jsfiddle.net/N7BWF/1/

回答

3
if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) 

這行代碼包括9(標籤)。如果要啓用tab,則必須將&& event.keyCode != 9添加到if條件中。

+0

感謝執行的代碼。這工作。 – input

+0

我也修正了你的小提琴的邏輯。在這個小提琴看到事件塊:http://jsfiddle.net/N7BWF/3/ –

0

將您的代碼段與9在函數的開始,並在IF塊return true;

http://jsfiddle.net/52LUt/

var code = event.keyCode || event.which; 
    if (code == 9) { 
     return true; 
    }