uniapp 多个input框输入完成后自动跳转下一个,删除内容后回退到上一个

1 篇文章 0 订阅

项目是用于精准输入号码去做匹配的,在uniapp里 多个input框输入完成后自动跳转下一个,删除内容后回退到上一个

话不多说,上代码看吧

模板部分代码:

<view class="phone-num-input-box u-flex u-row-between">
	<input type="number" class="phone-num-input" :disabled="index==0" :class="{'u-m-l-10': index==3||index==7}" maxlength="1" v-model="phone_num[index]"
	 v-for="(item,index) in phone_num" :key="index" :id="'input-'+ index" :focus="focus_index == index"
	 autocomplete="off" autocapitalize="off" autocorrect="off" @keyup.delete="funDeletePhoneNum"
	 @input="funInputPhoneNum" @focus="funFocusInput">
</view>

data部分代码:

focus_index: -1,
phone_num: {0:'1', 1:'', 2:'', 3:'', 4:'', 5:'',6: '', 7:'', 8:'', 9:'', 10:''},

methods部分代码:

funInputPhoneNum(e) {
	var index = (e.target.id).replace('input-', '');
	var value = e.detail.value;
	if (index != '10' && value != '') {
		this.focus_index = Number(index) + 1
	}
},
funDeletePhoneNum(e) {
	var index = (e.target.id).replace('input-', '');
	if (this.phone_num[index] == '' && index > 1 ) {
		this.focus_index = Number(index) - 1;
	}
},
funFocusInput(e){
	var index = (e.target.id).replace('input-', '');
	if(this.phone_num[index] != ''){
		this.phone_num[index] = '';
	}
},

实现原理:

@input事件 监听 输入框输入内容后,通过设置focus_index使得 input框聚焦到下一个input框;

@keyup.delete事件 监听输入按键后,聚焦的上一个input框

@focus事件 配合 任意选择有内容的input框进行内容清空,以便输入新的内容

 

  • 10
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值