我有通过 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/