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

本文介绍了如何使用Uniapp开发一个输入框,实现实时号码匹配,支持多输入框联动与删除操作的高效流程。通过监听input和keyup.delete事件,实现了内容输入与回退功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目是用于精准输入号码去做匹配的,在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框进行内容清空,以便输入新的内容

 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值