我有通过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();
}
});
});
答案 0 :(得分:4)
我认为主要的问题是你正在使用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
属性呢? / p>
答案 1 :(得分:3)
标签(键码9)不会触发keypress
事件。您需要使用keyup
或keydown
。
答案 2 :(得分:2)
如果这是ASP.NET,则需要通过ClientID
:
$(document).ready(function () {
$("#<%=TextBox1.ClientID%>").keypress(function (e) {
var kCode = e.keyCode || e.charCode;
if (kCode == 9) {
$("#<%=TextBox2.ClientID%>").focus();
}
});
});