javascript - jQuery Focus() 或 keypress() 在 IE 和 Chrome 中不起作用

标签 javascript jquery focus keypress

我有通过 tab 键切换 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。但是,在您的 fiddle 中进行测试似乎仍然无效。为了让它工作(至少在 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 属性相反?

关于javascript - jQuery Focus() 或 keypress() 在 IE 和 Chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8073281/

相关文章:

Jquery form.submit 不起作用

jquery - 找出是否使用 JQuery 检查了单选按钮?

javascript - 在 css 属性中使用 javascript 变量

javascript - 使用纯js为具有特定类的所有div设置高度

javascript - 如果列表中存在特定值,则从 Array 中删除数组

wpf - 将焦点设置在 WPF ComboBox 上并不总是有效

delphi - 捕获击键以导航自定义控件内手动绘制的项目?

javascript - mousedown后触发输入

javascript - 打开 document.windows,打印它并关闭它(不关闭)

javascript - 使用 extjs4 在窗口 heder 中添加下拉菜单?