Tab键不起作用

时间:2011-11-04 21:30:41

标签: jquery

我正在使用此代码阻止用户在文本框中输入数值:

$('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/

2 个答案:

答案 0 :(得分:3)

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

这行代码包括9(标签)。如果要启用&& event.keyCode != 9,则必须将tab添加到if条件。

答案 1 :(得分:0)

将代码片段放在函数开头的9处,并在if块return true;

中生成执行的代码

http://jsfiddle.net/52LUt/

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