0

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

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

在第一次加载时,我通过 js 设置焦点在txt1我的问题是,当我按tabtxt1txt3时如何操作keyascii ?

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

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

2 回答 2

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();
    }
});

看到这个小提琴

于 2013-07-02T07:09:11.323 回答
1

您应该改为收听 keydown 并使用 e.preventDefault()

例子:

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

参见 JSFiddle

preventDefault 的文档

于 2013-07-02T07:09:04.150 回答