2

我有五个文本框,其顺序与下面提到的 ID 相同

  1. txt名字
  2. txt姓氏
  3. txt电子邮件地址
  4. txt电话号码
  5. txt电话号码

我想要电话号码的标签功能(txtTelcode 和 txtTelephoneNumber)。

文本框 txtTelcode 的最大长度为 5。以下是所需的功能。

当用户填写 txtTelcode 时,输入 5 位数字后,选项卡应自动转移到下一个文本框 txtTelephoneNumber。

我使用了下面的代码,它工作正常,但我面临一个问题。

$(document).ready(function () {
    $('#' + telcode).keyup(function () {
        if ($.trim($('#' + telcode).val()).length == "5") {
            $('#' + txtTelephoneNumber).focus();
        }
    });
});

问题是如果 txtTelcode 中已经有 5 位数字,那么当用户切换到 txtTelcode 时,此函数会自动将它们前进到 txtTelephoneNumber 而不会在 txtTelcode 中停止。这不是我想要发生的;相反,即使它完成,我也需要能够进入 txtTelcode。我该如何修改我的代码来解决这个问题,或者我还能如何实现这个?

4

1 回答 1

3

我修改了自己的代码,如下所述。如果通过获取 e.keyCode 按下 Tab,我阻止了我的代码运行。

对于 shift + tab 功能,如果通过获取 e.keyCode 按下 Shift,我会阻止我的代码运行。

$('#' + telcode).keyup(function (e) {
            if (e.keyCode != 16) {
                if (e.keyCode != 9) {
                    if ($.trim($('#' + telcode).val()).length == "5") {
                        $('#' + txtTelephoneNumber).focus();
                    }
                }
            }
        });

这段代码工作正常。

于 2012-04-17T03:53:03.570 回答