2

我有一个收集电话号码的表单,有 3 个字段,当用户在特定字段中输入 maxLen 数字时,我想自动跳转到下一个输入字段,似乎无法正常工作

HTML

<!-- Other inputs above -->
  <label>Telephone Number</label>
  <input type="text" class="phone" size="3" maxlength="3" onkeyup="checkLen(this,this.value)">
  <input type="text" class="phone" size="3" maxlength="3" onkeyup="checkLen(this,this.value)">
  <input type="text" class="phone" size="4" maxlength="4" onkeyup="checkLen(this,this.value)">

asp.net 后端,因此 ID 都是动态生成的,因此很难通过 ID 获取元素。

javascript

function checkLen(x, y) {
    if (y.length == x.maxLength) {
        var next = x.tabIndex;
        if (next < document.getElementsByClassName("phone").length) {
            document.getElementsByClassName("phone").elements[next].focus();
        }
    }
}
4

1 回答 1

4

假设您使用的是 jQuery。

您可以将其移至下一个输入,而不是尝试使用tabindex

$(".phone").keyup(function () {
    if (this.value.length == this.maxLength) {
      $(this).next('.phone').focus();
    }
});

onclick当您像上面一样绑定它时,还要删除属性处理程序。

于 2013-10-31T18:00:32.490 回答