javascript - 填充4个字符后如何移动下一个输入选项卡

标签 javascript jquery html css

我还有一个问题,如果我需要更改数字第二个或第三个字段,我已经填写了所有字段。更改无法完成,它进入最后一个输入字段。

我试过下面的代码,

    (function (){
$("#num1, #num2, #num3, #num4").on("keyup", function (t) {
    //add the key's you want to accept such as backspace or arrow keys etc.
    if (t.keyCode != 13 && t.keyCode != 8 && t.keyCode != 37 && t.keyCode != 38 && t.keyCode != 39 && t.button != 1 && t.button != 2 && t.button != 3) {
    var maxlength = 4;
    var num1 = $("#num1").val().length;
    var num2 = $("#num2").val().length;
    var num3 = $("#num3").val().length;
    var num4 = $("#num4").val().length;
    $(this).val($(this).val().replace(/[^0-9\.]/g,''));

    if ( num1 >= 4) {
    $("#num2").focus();
    }
    if( num2 >= 4){
      $("#num3").focus();
    }
    if( num3 >= 4){
      $("#num4").focus();
    }

    if (num4>=4){
       $("#num4").val($("#num4").val().substr(0,4));
    }
    }

  });   
})();

最佳答案

您粘贴的代码有错误的 if 语句。让我们试着理解这个问题。以下是您的代码的工作方式

在第一个字段中输入值。达到四个字符去下一步。在第二个字段中输入。达到四个字符去下一步。在第三个字段中输入。达到四个字符去下一步。在第四个字段中输入。到达四个字符停止。

现在的问题是您何时开始编辑。当您编辑第二行时。您的 if 命令同时告诉您检查第三行和第四行。因此,如果第三行有四个字符,则转到第四行。如果第四行有四个字符停止。因此,除非删除第三行和第四行中的任何内容,否则您无法编辑第二行。

Bhavesh 共享的以下链接完全符合您的要求。根据需要将最大限制增加到 4。但我希望您能够了解问题出在哪里,以免以后再犯类似的错误。

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

JSFIDDLE LINK

关于javascript - 填充4个字符后如何移动下一个输入选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23881754/

相关文章:

javascript - 停止下拉菜单离开屏幕

html - 使用 CSS 在 HTML 页面上的格式不正确

javascript - 淡入不起作用

javascript - 在 Javascript 中更改动态链接文本

javascript - 从 Angular 2 服务中的 JSON 响应中提取数据

javascript - 哪种情况更适合设置路径? "path.join() vs string operation vs template literals"

javascript检测手指移过div

javascript - 如何将关闭事件绑定(bind)到 window.open()

javascript - 返回 false 不会阻止表单提交

javascript - FuelUX 向导 ajax 验证