表单焦点自动切换

<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上


小怪兽爱吃肉
浏览 477回答 1
1回答

眼眸繁星

改成这样  var&nbsp;txt&nbsp;=&nbsp;document.getElementsByClassName("txt");   for(var&nbsp;i=0;i<txt.length;i++){ &nbsp;&nbsp;&nbsp;&nbsp;(function(i){     txt[i].onkeyup&nbsp;=&nbsp;function(){     if(this.value.length&nbsp;==&nbsp;5){     this.blur();     txt[i+1].focus();     };   };})(i); }或者给input加一个属性记录下一个要focus的  var&nbsp;txt&nbsp;=&nbsp;document.getElementsByClassName("txt");   for(var&nbsp;i=0;i<txt.length;i++){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;txt[i].dataset.nextid=i+1;     txt[i].onkeyup&nbsp;=&nbsp;function(){     if(this.value.length&nbsp;==&nbsp;5){     this.blur();     txt[this.dataset.nextid].focus();     };   }; }还可以直接把var改成let,其他一切不变(es6特性)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript