Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript TextInput在填充了某些条件后会自动跳转到另一个字段_Javascript_Html - Fatal编程技术网

Javascript TextInput在填充了某些条件后会自动跳转到另一个字段

Javascript TextInput在填充了某些条件后会自动跳转到另一个字段,javascript,html,Javascript,Html,我想要一个输入文本,一旦它达到最大值,就会自动跳转到另一个输入文本字段 这是示例文本字段 Identification card: <input type="text" name="ic[1]" size="15" maxlength="6" pattern="[0-9]*" title="6 number only"> - <input type="text" name="ic[2]" size="15" maxlength="2" pattern="[0-9]*" tit

我想要一个输入文本,一旦它达到最大值,就会自动跳转到另一个输入文本字段

这是示例文本字段

Identification card:
<input type="text" name="ic[1]" size="15" maxlength="6" pattern="[0-9]*" title="6 number only"> - 
<input type="text" name="ic[2]" size="15" maxlength="2" pattern="[0-9]*" title="2 number only"> - 
<input type="text" name="ic[3]" size="15" maxlength="4" pattern="[0-9]*" title="4 number only">
识别卡:
- 
- 

如何使输入文本字段在第一个文本字段达到最大值时立即跳转到另一个字段?就像我们在安装软件时输入串行密钥一样。如果可能并且需要javascript,我希望它是一个简单的javascript,而不是jquery。

没有使用jquery,是一个非常干净的实现:

  • 从maxlength属性读取
  • 可扩展到容器内任意数量的输入
  • 自动查找要聚焦的下一个输入
  • 没有jQuery


您只需听onKeyPress并检查输入值的长度。如果它达到大小/限制,则关注下一个
@Terry如何在下一个输入达到限制大小后关注它?另请参阅文本框文本更改的其他要求,而不是键入。@user2781911如果满足您的需要,请接受回答。:)@谢谢你的回答。我已经在JSFIDLE中尝试了该代码。但它不能满足我对输入的要求。当它达到最大长度时,它不会自动跳转到另一个字段。@user2781911我试过了,它在
Firefox
中工作,我会在其他浏览器中检查并更新它。@AshishChopra我目前使用Firefox。当我在JSFIDLE中测试时,它不起作用。我不知道是什么问题。我将尝试我的代码,并将在此之后更新您。
var container = document.getElementsByClassName("container")[0];
container.onkeyup = function(e) {
var target = e.srcElement;
var maxLength = parseInt(target.attributes["maxlength"].value, 10);
var myLength = target.value.length;
if (myLength >= maxLength) {
    var next = target;
    while (next = next.nextElementSibling) {
        if (next == null)
            break;
        if (next.tagName.toLowerCase() == "input") {
            next.focus();
            break;
        }
    }
}
}