<input type="text" class="txt" maxlength="5" placeholder="1"/><br/><input type="text" class="txt" maxlength="5" placeholder="2"/><br/><input type="text" class="txt" maxlength="5" placeholder="3"/><script> var txt = document.getElementsByClassName("txt"); for(var i=0;i<txt.length;i++){ txt[i].onkeyup = function(){ if(this.value.length == 5){ this.blur(); txt[i+1].focus(); }; };}</script>需求是这样的:在输入框输入内容之后,自动将焦点定位到下一个input上
1 回答
眼眸繁星
TA贡献1873条经验 获得超9个赞
改成这样
var txt = document.getElementsByClassName("txt"); for(var i=0;i<txt.length;i++){ (function(i){ txt[i].onkeyup = function(){ if(this.value.length == 5){ this.blur(); txt[i+1].focus(); }; };})(i); }
或者给input加一个属性记录下一个要focus的
var txt = document.getElementsByClassName("txt"); for(var i=0;i<txt.length;i++){ txt[i].dataset.nextid=i+1; txt[i].onkeyup = function(){ if(this.value.length == 5){ this.blur(); txt[this.dataset.nextid].focus(); }; }; }
还可以直接把var改成let,其他一切不变(es6特性)
添加回答
举报
0/150
提交
取消