javascript中的tab键盘不起作用

时间:2013-07-02 07:04:46

标签: javascript jquery keycode

例如,我的HTML代码中有3个元素用于文本输入。

<input type="text" name="txt1" />
<input type="text" name="txt2" />
<input type="text" name="txt3" />

首次加载时,我设置js以聚焦 txt1 。 我的问题是,当我从 txt1 标签 txt3 时,如何处理keyascii?

事实上,我已经用jquery添加了一些js代码来做到这一点,但是不起作用!它总是专注于 txt2 。这是我的js代码:

$('input[name="txt1"]').keyup(function(e){
        if((e.keyWhich || e.keyCode) == 9){
            $('input[name="txt3"]').focus();
        }
    });

2 个答案:

答案 0 :(得分:2)

收听keydown并使用e.preventDefault()来阻止默认行为。 按tab的默认行为是在keyup事件被触发之前执行的。这就是你必须使用keydown的原因。

$('input[name="txt1"]').keydown(function(e){
    if((e.keyWhich || e.keyCode) == 9){            
        e.preventDefault();
        $('input[name="txt3"]').focus();
    }
});

请参阅此Fiddle

答案 1 :(得分:1)

您应该先监听keydown并使用e.preventDefault()

示例:

$('input[name="txt1"]').keydown(function(e){
    if((e.keyWhich || e.keyCode) == 9) {
        e.preventDefault();
        $('input[name="txt3"]').focus();
    }
});

See on JSFiddle

Documentation of preventDefault