电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

uniapp 手機驗證碼輸入框實現代碼(隨機數、倒計時、隱藏手機號碼中間四位)可以直接使用

瀏覽:114日期:2022-06-01 08:27:31

如鍵盤被隱藏,可直接點擊藍框彈出鍵盤,藍框就相當于input的光標,驗證碼輸入錯誤之后會將字體以及邊框改為紅色,持續1.5s(可自行修改時間),然后清空數據。

<template>	<view>		<view>請輸入驗證碼			<view>已向<text>+86 {{phone.substring(0, 3)}}****{{phone.substr(phone.length-4)}}</text>發送驗證碼</view>			<view v-if="codeclolor == "#ff0000"">驗證碼輸入錯誤</view>		</view>		<input adjust-position="false" auto-blur="true" @blur="blur" @input="codenum" :focus="focus"					value="code" v-model="code" type="number" maxlength="6" />		<view>			<view v-for="(item,index) in 6" :key="index" @click="codefocus(index)"						:style="(index == code.length? "border: 5rpx solid #1195db;width: 80rpx;height: 80rpx;line-height: 80rpx;":"color: " + codeclolor + ";" +"border: 2rpx solid" + codeclolor)">						{{code[index] && code[index] || ""}}			</view>		</view>		<block v-if="sec!=20">			<view>重新發送({{sec}}s)</view>		</block>				<button @click="getCode()" type="primary" :disabled="verifyShow">發送短信</button>	</view></template> <script>	export default {		data() {			return {				phone:"12345678910",				// 驗證碼輸入聚焦				focus: true,//input焦點,用于鍵盤隱藏后重新喚起				// 驗證碼框顏色				codeclolor: "#313131",//自定義光標的顏色				// 驗證碼獲取秒數				sec: "20",//這是重新獲取驗證碼的倒計時(可根據需求修改)				code: "",//這是用戶輸入的驗證碼				codeCorrect:"",//正確的驗證碼				verifyShow:false,//是否禁用按鈕			}		},		methods: {			// 輸入驗證碼			codenum: function(event) {				// console.log("輸入的值",event.target.value)				var that = this				var code = event.target.value				that.code = code				if (code.length == 6) {					if (code == that.codeCorrect) {		//輸入六位驗證碼后自動進行驗證并執行驗證成功的函數						console.log("驗證碼正確:",that.code)					} else {						console.log("驗證碼錯誤!!!:",that.code)						that.codeclolor = "#ff0000"						setTimeout(function() {							that.code = []							event.target.value = ""							that.codeclolor = "#313131"						}, 1500)					}				}			},			// 鍵盤隱藏后設置失去焦點			blur: function() {				var that = this				that.focus = false			},			// 點擊自定義光標顯示鍵盤			codefocus: function(e) {				var that = this				if (e == that.code.length) {					that.focus = true				}			},			getCode(){//獲取驗證碼				const that = this				that.codeCorrect = that.getVerificationCode(6)  //可以不傳值,默認為4位隨機碼				console.log("生成的隨機碼為:" + that.codeCorrect)				that.timedown(that.sec)// 倒計時			},			//隨機生成幾位數			getVerificationCode(codeLength){ //傳入需要的字符串長度,不傳默認為4				// 準備一個用來抽取碼的字符串,或者字典				// let verification_code_str = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";  //數字和字母				let verification_code_str = "0123456789";     //純數字				// 獲取某個范圍的隨機整數,封裝的函數,在上面抽取字典的時候進行了調用				function getRandom(min, max) {//意思是獲取min-max數字之間的某個隨機數,直接調用即可					return Math.round(Math.random() * (max - min) + min);				}				let newStr = "";    //創建一個空字符串,用來拼接四位隨機碼				for (var i = 0; i < codeLength; i++) {       //for循環四次,則拼接四次隨機碼					newStr += verification_code_str[getRandom(0, verification_code_str.length - 1)];   //從字典中隨機選一個下標,并拼接到空字符串中				}				return newStr			},			//倒計時			timedown:function(num){				let that = this;				if(num == 0){					that.verifyShow = false;		 // 不禁用獲取驗證碼按鈕					that.sec = 20						return clearTimeout();				}else{					that.verifyShow = true;			// 禁用獲取驗證碼按鈕					setTimeout(function() {  						that.sec = num-1						that.timedown(num-1);  					}, 1000);//定時每秒減一  				}			},		}	}</script> <style scoped lang="less">	    .code {			margin: auto;			margin-top: 50rpx;			width: 650rpx;			height: auto;		}	 	    .code-tip-one {			width: 650rpx;			height: 250rpx;			line-height: 100rpx;			font-size: 60rpx;			font-weight: bold;			color: #313131;		}	 		.code-tip {			width: 650rpx;			height: 100rpx;			line-height: 50rpx;			font-size: 30rpx;			font-weight: normal;			color: #8a8a8a;		}	 		.code-errow {			width: 650rpx;			height: 50rpx;			line-height: 25rpx;			font-size: 28rpx;			font-weight: normal;			color: #ff0000;		}	 		.code-tip>text {			padding: 0 20rpx;			width: 650rpx;			font-size: 30rpx;			font-weight: normal;			color: #ff5500;		}	 	    .code-input {			margin: auto;			width: 650rpx;			height: 100rpx;			display: flex;		}	 		.code-input>view {			margin-top: 5rpx;			margin-left: 15rpx;			width: 86rpx;			height: 86rpx;			line-height: 86rpx;			font-size: 60rpx;			font-weight: bold;			color: #313131;			text-align: center;			border-radius: 10rpx;		}	 		.code-input>view:nth-child(1) {			margin-left: 0rpx;		}	 		.cinput {			position: fixed;			left: -100rpx;			width: 50rpx;			height: 50rpx;		}				.recode{			margin-top: 20rpx;			width: 200rpx;			height: 80rpx;			line-height: 80rpx;			color: #707070;			font-size: 28rpx;		}</style>

實現思路:創建六個正方形的view(使用for循環),然后創建一個數字input,最大輸入長度為六位(根據驗證碼的長度),再將input隱藏掉,獲取到的值分別放到六個view中。

其中驗證碼驗證失敗之后利用v-model雙向綁定進行清空已經輸入的值

注意:單純的輸出 code[index] 不會展示空只會展示未定義,必須加上 {{code[index] && code[index] || ''}} 進行判斷替換為空,密碼輸入框替換字符,也就是與或非的意思吧

如果是不想展示驗證碼信息可以改為{{code[index] && '●' || ''}},這樣你輸入是參數就會被替換為●●●●●●

到此這篇關于uniapp 手機驗證碼輸入框(隨機數、倒計時、隱藏手機號碼中間四位)可以直接使用的文章就介紹到這了,更多相關uniapp驗證碼輸入框內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: JavaScript
主站蜘蛛池模板: ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 无轨电动平车_轨道平车_蓄电池电动平车★尽在新乡百特智能转运设备有限公司 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 深圳昂为官网-气体分析仪,沼气分析仪,动态配气仪,气体传感器厂家 | 河南生物显微镜,全自动冰冻切片机-河南荣程联合科技有限公司 | 万烁建筑设计院-建筑设计公司加盟,设计院加盟分公司,市政设计加盟 | 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | 中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折! | GAST/BRIWATEC/CINCINNATI/KARL-KLEIN/ZIEHL-ABEGG风机|亚喜科技 | 科普仪器菏泽市教育教学仪器总厂 | 杭州实验室尾气处理_实验台_实验室家具_杭州秋叶实验设备有限公司 | 亚洲工业智能制造领域专业门户网站 - 亚洲自动化与机器人网 | 回收二手冲床_金丰旧冲床回收_协易冲床回收 - 大鑫机械设备 | 路面机械厂家| 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 上海logo设计| 塑料瓶罐_食品塑料瓶_保健品塑料瓶_调味品塑料瓶–东莞市富慷塑料制品有限公司 | 禹城彩钢厂_钢结构板房_彩钢复合板-禹城泰瑞彩钢复合板加工厂 | PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 微信小程序定制,广州app公众号商城网站开发公司-广东锋火 | 北京翻译公司_同传翻译_字幕翻译_合同翻译_英语陪同翻译_影视翻译_翻译盖章-译铭信息 | 拖鞋定制厂家-品牌拖鞋代加工厂-振扬实业中国高端拖鞋大型制造商 | 南京交通事故律师-专打交通事故的南京律师| 滚塑PE壳体-PE塑料浮球-警示PE浮筒-宁波君益塑业有限公司 | 德国UST优斯特氢气检漏仪-德国舒赐乙烷检测仪-北京泽钏 | 合肥办公室装修 - 合肥工装公司 - 天思装饰 | 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 天津试验仪器-电液伺服万能材料试验机,恒温恒湿标准养护箱,水泥恒应力压力试验机-天津鑫高伟业科技有限公司 | 除甲醛公司-甲醛检测治理-杭州创绿家环保科技有限公司-室内空气净化十大品牌 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 无纺布包装机|径向缠绕包装机|缠绕膜打包机-上海晏陵智能设备有限公司 | 正压送风机-多叶送风口-板式排烟口-德州志诺通风设备 | SPC工作站-连杆综合检具-表盘气动量仪-内孔缺陷检测仪-杭州朗多检测仪器有限公司 | 气动机械手-搬运机械手-气动助力机械手-山东精瑞自动化设备有限公司 | 温州富欧金属封头-不锈钢封头厂家 | 艺术涂料|木纹漆施工|稻草漆厂家|马来漆|石桦奴|水泥漆|选加河南天工涂料 | 体坛网_体坛+_体坛周报新闻客户端 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 模温机-油温机-电加热导热油炉-工业冷水机「欧诺智能」 |