美文网首页
微信小程序:一组input,按顺序自动获得焦点

微信小程序:一组input,按顺序自动获得焦点

作者: 我的小小笔尖 | 来源:发表于2021-07-07 23:46 被阅读0次

    需求描述:

    有m行,每行n=5个input,要求每个input输入4个数字后将焦点自动移到下一个input。

    实现方式:

    每个input的id按数字序号定义,1、2、3......
    每个input的focus值按条件获取true或false

    wxml代码

              <view class="inputArea bg-white">
                <block wx:for="{{lineNumber}}" wx:for-item="line" wx:for-index="lineIndex" wx:key="lineIndex">
                  <view class="inputRow">
                    <label class="text-gray">{{lineIndex<9?0:''}}{{(lineIndex+1)}}.</label>
                    <block wx:for="{{cellNumber}}" wx:for-item="cell" wx:for-index="cellIndex" wx:key="cellIndex">
                      <wux-field name="input{{5*lineIndex+cellIndex+1}}" class="solid-bottom text-center text-df">
                        <wux-input focus="{{inputID==(5*lineIndex+cellIndex+1)?true:false}}" id="{{5*lineIndex+cellIndex+1}}" type="number" maxlength='4' bind:change="onInputChange"/>
                      </wux-field>
                    </block>
                  </view>
                </block>
              </view> 
    

    其中关键代码是:

    focus="{{inputID==(5lineIndex+cellIndex+1)?true:false}}" id="{{5lineIndex+cellIndex+1}}"

    js代码

      // input中输入数字时
      onInputChange: function(e){
        if(e.detail.value.length==4) {
          let currentID = e.currentTarget.id // 当前input id
          this.setData({
            inputID: parseInt(currentID)+1 // next input id
          })
        }
      },
    

    完美!

    相关文章

      网友评论

          本文标题:微信小程序:一组input,按顺序自动获得焦点

          本文链接:https://www.haomeiwen.com/subject/wtvveltx.html