小程序
小游戏
企业微信
微信支付
扫描小程序码分享
- 需求的场景描述(希望解决的问题)
小程序input设置最大输入值为1 ,输入1位数字之后如何让光标自动切换至下一个文本框?
7 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
看看这个能不能帮到你。
在线预览 https://qaqxiyangyang.github.io/autoFocusInput/dist/
GitHub https://github.com/QAQXiYangYang/autoFocusInput
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
我是这样处理的。可以参考一下
wxml:
<view class="input-row"> <input wx:for="{{inputList}}" bindinput="_handleInput" data-index="{{index}}" class="input-num" type="number" focus="{{item.focus}}" value="{{item.value}}" maxlength="1" /> </view>
js:
// 输入控制
data: { inputList: [{ value: "", focus: true, }, { value: "", focus: false, }, { value: "", focus: false, }, { value: "", focus: false, }, ] }, _handleInput(e) { const { inputList } = this.data const { value } = e.detail const { index } = e.currentTarget.dataset if (value.length === 1) { const nextIndex = index + 1 inputList.forEach((item, innerIndex) => { item.focus = nextIndex === innerIndex }) this.setData({ inputList }) } inputList[index].value = value this.setData({ inputList }) }
有完整的吗
你好,怎么做的能否发一下,
原生这样做会有问题
会存在什么问题呀
你要删除之后 光标的位置会出现问题
你需要准备给所有输入框一个focus属性(控制焦点失去和获取),以及input输入监听。这些数据可以用数组存取。 类似: [{value: "",focus: true},{value: "",focus: false},{value: "",focus: false},... ] 当第一个input执行,判断value.length为1时,就设置当前输入框的focus为false,下一个输入框focus为true。大致思路上是这样。
多谢 我试试
楼主,请问这个问题结局了吗?我尝试用focus聚焦来控制 但是键盘就会出现闪现的状况
设置input的focus属性
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
看看这个能不能帮到你。
在线预览 https://qaqxiyangyang.github.io/autoFocusInput/dist/
GitHub https://github.com/QAQXiYangYang/autoFocusInput
我是这样处理的。可以参考一下
wxml:
<view class="input-row"> <input wx:for="{{inputList}}" bindinput="_handleInput" data-index="{{index}}" class="input-num" type="number" focus="{{item.focus}}" value="{{item.value}}" maxlength="1" /> </view>
js:
// 输入控制
data: { inputList: [{ value: "", focus: true, }, { value: "", focus: false, }, { value: "", focus: false, }, { value: "", focus: false, }, ] }, _handleInput(e) { const { inputList } = this.data const { value } = e.detail const { index } = e.currentTarget.dataset if (value.length === 1) { const nextIndex = index + 1 inputList.forEach((item, innerIndex) => { item.focus = nextIndex === innerIndex }) this.setData({ inputList }) } inputList[index].value = value this.setData({ inputList }) }
有完整的吗
你好,怎么做的能否发一下,
原生这样做会有问题
会存在什么问题呀
你要删除之后 光标的位置会出现问题
你需要准备给所有输入框一个focus属性(控制焦点失去和获取),以及input输入监听。这些数据可以用数组存取。 类似: [{value: "",focus: true},{value: "",focus: false},{value: "",focus: false},... ] 当第一个input执行,判断value.length为1时,就设置当前输入框的focus为false,下一个输入框focus为true。大致思路上是这样。
多谢 我试试
楼主,请问这个问题结局了吗?我尝试用focus聚焦来控制 但是键盘就会出现闪现的状况
设置input的focus属性
多谢 我试试