gpt4 book ai didi

javascript - 达到 maxlength 值后聚焦下一个输入

转载 作者:IT王子 更新时间:2023-10-29 03:21:08 28 4
gpt4 key购买 nike

一旦上一个输入达到其最大长度值,我如何才能聚焦下一个输入?

a: <input type="text" maxlength="5" />
b: <input type="text" maxlength="5" />
c: <input type="text" maxlength="5" />

如果用户粘贴的文本大于最大长度,理想情况下它应该溢出到下一个输入。

jsFiddle: http://jsfiddle.net/4m5fg/1/

我必须强调,我不想使用插件,因为我宁愿学习这背后的逻辑,也不愿使用已经存在的东西。感谢您的理解。

最佳答案

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

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

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

<div class="container">
a: <input type="text" maxlength="5" />
b: <input type="text" maxlength="5" />
c: <input type="text" maxlength="5" />
</div>

..

var container = document.getElementsByClassName("container")[0];
container.onkeyup = function(e) {
var target = e.srcElement || e.target;
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;
}
}
}
// Move to previous field if empty (user pressed backspace)
else if (myLength === 0) {
var previous = target;
while (previous = previous.previousElementSibling) {
if (previous == null)
break;
if (previous.tagName.toLowerCase() === "input") {
previous.focus();
break;
}
}
}
}

关于javascript - 达到 maxlength 值后聚焦下一个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15595652/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com