我有2个字段用于浏览代码,它在IE和Chrome中没有任何作用,似乎它什么也没有运行(例如,当我发出警报时我什么也没得到),而在Firefox中,它却运行着一些错误(在其中跳了两次)您认为问题出在哪里,我正在使用ASP.Net和jQuery 1.3.2开发

$(document).ready(function () {
    $("#TextBox1").keypress(function (e) {
        var kCode = e.keyCode || e.charCode;
        if (kCode == 9) {
            $("#TextBox2").focus();
        }
    });
});

最佳答案

我认为主要问题是您正在使用keypress事件,该事件仅应在将字符添加到输入中时触发,而不是在按下任何键(如TAB)时才触发。

要处理其他按键,您将需要使用keydown。但是,对您的小提琴进行测试似乎仍然无效。为了使其正常运行(至少在Chrome中),我不得不阻止默认操作:

$(document).ready(function () {
    $("#TextBox1").keydown(function (e) {
        e.preventDefault();
        var kCode = e.keyCode || e.charCode;
        console.log(kCode);
         if (kCode == 9) {
            $("#TextBox2").focus();
        }
    });
});


这是update fiddle。但是,如果我正确理解了您的问题,那么您要做的就是在按下Tab键时更改焦点元素...如果是的话,为什么不直接使用tabindex属性呢?

07-22 13:08