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


txtFirstName
txtLastName
txtEmailAddress
txt电话代码
txtTelephoneNumber


我想要电话号码的标签功能(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。如何修改我的代码以解决此问题,或者如何实现此目的?

最佳答案

我修改了自己的代码,如下所述。如果通过获取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();
                    }
                }
            }
        });


这段代码工作正常。

关于jquery - 自动前进到HTML表单中的下一个字段,而无需更改选项卡的行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10172058/

10-10 08:33