0

场景:

我们有 3 个框可以接收任何字母或数字组合作为输入。第一个框最多可以有 3 个字符,第二个框必须正好是 7 个,最后一个框必须是 2 个。

我试图让一个 jQuery 函数到位,一旦用户输入 3 个字符,然后从第 2 个到第 7 个字符,然后从第 3 个到 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。

4

1 回答 1

1

我认为忽略 shift (16) 的关键代码不会给您带来任何问题。当用户释放 shift 时,它会忽略它。然后它会为他们按下的任何其他键触发一个单独的 onkeydown 事件,无论 shift 是否仍然被按住。你可以在这里测试它:http: //asquare.net/javascript/tests/KeyCode.html

于 2012-07-03T19:20:08.160 回答