【发布时间】:2012-07-03 19:07:29
【问题描述】:
场景:
我们有 3 个框可以接收任何字母或数字组合作为输入。第一个框最多可以有 3 个字符,第二个框必须正好是 7,最后一个必须是 2。
我试图获得一个 jQuery 函数,以便在用户输入 3 个字符后将用户从第一个框带到第二个框,然后在输入 7 个字符后从第二个框到第三个框,然后从第三个框到第二个框2 个字符后的按钮。我还希望这个函数相当通用,以便我可以从其他控件中使用它,所以我设置了以下内容:
function moveOn(e, objID, nextID, howLong) {
if (!(e.keyCode == 9)) {
if ($(objID).val().length >= (howLong)) {
$(nextID).select();
}
}
}
让我适应的是 Shift+Tab。我试图通过 if(keyCode == 9) 检查来捕捉它,但因为它是 keyup,所以 shift 键可能会在 Tab 之前出现一瞬间,在这种情况下,事件会在 Shift 键 (16) 而不是选项卡 (9)。我不能忽略所有 Shift 捕获,因为用户很可能会在至少一个字段中使用大写字母。
当他们输入第一个值然后意识到他们犯了错误所以他们想返回时,Shift+Tab 就会发挥作用。我们的员工非常依赖键盘,因此他们几乎总是使用 Shift+Tab 来尝试返回并修复该问题。
为了流畅地完成这项工作,我是否缺少一些技巧?
TIA。
【问题讨论】:
-
仅供参考,你想给
focus() -
您希望在他们在当前字段中输入正确数量的字符后自动将焦点移至下一个字段。那么 shift 或 tab 是从哪里来的呢?我显然错过了一些东西......
-
为什么我要使用 focus() 而不是 select()。如果下一个字段中已经有一个值,那么我希望立即选择它,以便他们可以在上面输入。 focus(),imo,总是假设您只打算附加当前存在的值......我发现通常情况并非如此。
-
添加了一些关于 Shift+Tab 发挥作用的描述
-
回到 focus() vs select() 部分...我确实添加了一些东西来确定我是要转到文本框还是链接/按钮并适当地处理它。跨度>
标签: jquery