为了账号安全,请及时绑定邮箱和手机立即绑定

表单焦点自动切换

表单焦点自动切换

小怪兽爱吃肉 2018-07-03 07:10:15
<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特性)


查看完整回答
反对 回复 2018-08-15
  • 1 回答
  • 0 关注
  • 476 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信