关于自动切换焦点的代码问题咨询

lyw2073327 2021-03-16 08:15:03
写了下面一段代码,目的是为了达到最大长度后自动换行,比如在第一行输入123,然后就跳到第二行, 但好像代码运行不起来,麻烦各位帮忙看一下应该怎么修改这段代码,谢谢

<script type="text/javascript">
window.onload =function(){
for(i=0;len=form.elements.length;i<len;i++){
if(form.elements[i].value.length == form.elements[i].value.maxLength){
form.elements[i+1].focus()
}
return
}
}
</script>
<body>
<form>
<input type="text" name="num2" maxlength="3" id="text1" autofocus="autofocus">
<input type="text" name="num2" maxlength="3">
<input type="text" name="num2" maxlength="3">
<input type="text" name="num2" maxlength="3">
<input type="text" name="num2" maxlength="3">
</form>
</body>
...全文
169 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyw2073327 2021-03-18
  • 打赏
  • 举报
回复
了解了,非常感谢
hdtianlong 2021-03-17
  • 打赏
  • 举报
回复

<form>
	<input type="text" name="num2" maxlength="3">
	<input type="text" name="num2" maxlength="3">
	<input type="text" name="num2" maxlength="3">
	<input type="text" name="num2" maxlength="3">
	<input type="text" name="num2" maxlength="3">
</form>

window.onload = function(){
	var dom = document.querySelectorAll('input');
	for(var i=0; i<dom.length; i++){
		dom[i].addEventListener('input',function(){
			if(this.value.length == this.maxLength){
				this.blur();
				this.nextElementSibling && this.nextElementSibling.focus();
			}
		})
	}
}
qq_20113959 2021-03-17
  • 打赏
  • 举报
回复
我认为是先要判断下一个节点还存在不,如果你下面一个节点都不存在了this.nextElementSibling.foucs()就没有意义了。在程序中,且语言只要遇到一个为false就不执行了。因此可以认为,只要是this.nextElementSibling不存在,后面语句就不执行了。
lyw2073327 2021-03-17
  • 打赏
  • 举报
回复
非常感谢您的回答,另外有一点麻烦再咨询一下,为什么必须是 this.nextElementSibling && this.nextElementSibling.focus() 这种样式,如果单写 this.nextElementSibling.focus() 就达不到转移的效果,这是什么原因呢
sxysoft_csdn 2021-03-16
  • 打赏
  • 举报
回复
兄弟连语句都不对。人家如何给你调? 你先看一下 js 相关的教程吧

87,914

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧