自动前进到HTML表单中的下一个字段,而不更改选项卡行为

时间:2012-04-16 10:00:27

标签: jquery asp.net tabs phone-number

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

  1. txtFirstName
  2. txtLastName
  3. txtEmailAddress
  4. txtTelcode
  5. txtTelephoneNumber
  6. 我想要电话号码的标签功能(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,即使它完成。如何修改我的代码来解决这个问题,或者我该如何实现呢?

1 个答案:

答案 0 :(得分: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();
                    }
                }
            }
        });

此代码工作正常。