jQuery Focus()或keypress()不工作在IE和Chrome

jQuery Focus() or keypress() not working in IE and Chrome

本文关键字:IE 工作 Chrome keypress Focus jQuery      更新时间:2023-09-26

我有代码吹tab通过2个字段,它在IE和Chrome中没有效果,似乎它没有运行(例如,当我放警报时我什么也得不到),在Firefox中它运行一些bug(它在那里跳两次)你认为问题在哪里,我正在开发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();
        }
    });
});

这是一个更新的小提琴。然而,如果我正确理解了你的问题,你所要做的就是在按下tab键时改变焦点元素……如果这是正确的,为什么不使用tabindex属性代替?

keypress事件不触发选项卡 (keycode 9)。您需要使用keyupkeydown

. NET,您需要通过ClientID:

来引用控件。
$(document).ready(function () { 
    $("#<%=TextBox1.ClientID%>").keypress(function (e) { 
        var kCode = e.keyCode || e.charCode;  
         if (kCode == 9) { 
            $("#<%=TextBox2.ClientID%>").focus(); 
        } 
    }); 
});