javascript - TextInput 在满足特定条件后自动跳转到另一个字段

标签 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]*" 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。

http://jsfiddle.net/4m5fg/5/

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;
        }
    }
}
}

关于javascript - TextInput 在满足特定条件后自动跳转到另一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22435611/

相关文章:

javascript - 如何仅替换按下的字符;使用 JavaScript/jQuery

javascript - 如何从 li 值中获取一个元素并操作它的值?

javascript - JavaScript 中未定义与已定义的窗口属性

javascript - DropDownListFor ASP.NET 中的验证

Jqueryui 可调整大小。光标通过其他元素来到前台

html - 如何使 html 忽略作为文本一部分的代码?

javascript - Angularjs 模式关闭时不运行代码

html - 如何在不使用 "polygon"的情况下获得三 Angular 形布局

javascript - WebAssembly 从 wasm 调用 JavaScript 方法,即在 C++ 代码中

javascript - 点击下个月后 jQuery Datepicker 打开两次(使用 2 Datepickers)