这篇文章主要介绍了vue怎么实现验证码输入框组件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
vue是什么
vue是一套用于构建用户界面的渐进式JavaScript框架,vue与其它大型框架的区别是,使用vue可以自底向上逐层应用,其核心库只关注视图层,方便与第三方库和项目整合,且使用vue可以采用单文件组件和vue生态系统支持的库开发复杂的单页应用。
先来看波完成效果图
& lt; div 类=皊ecurity-code-wrap"比;=?& lt; label ; code"比; & lt;才能ul 类=皊ecurity-code-container"比; & lt;才能li 类=癴ield-wrap", v=?项目,,指数),拷贝number",:关键=癷ndex"比; ,,& lt;小姐:类=癱har-field"在{{价值(指数),| |,占位符}}& lt;/i> & lt;才能/li> & lt;才能/ul> ,& lt;/label> ,& lt; input  ref=癷nput",类=癷nput-code", @keyup=癶andleInput(事件)美元“,v模型=皏alue" ,,id=癱ode", name=癱ode",类型=皌el",:最大长度=皀umber" ,,自动更正=皁ff",自动完成=皁ff", autocapitalize=皁ff"比; & lt;/div>
使李用元素来模拟输入框的显示,没有别的目的,就只是为了语义化,当然你也可以使用其他任意一个元素来模拟,比如div。
使用标签标签的好处在于它可以跟输入的点事件关联上,一方面实现了语义化解决方案,另一方面也省去了我们通过js来唤起虚拟键盘。
隐藏输入框
.input-code { ,位置:绝对; ,左:-9999 px; ,最高:-99999 px; ,宽度:0; ,高度:0; ,不透明度:0; 可见,溢出:; ,z - index: 1; }
将真实的输入框定位到屏幕可视区域以外的地方,虚拟键盘被唤起时,就不会将页面往上顶了。所以你的验证码输入组件一定要放在虚拟键盘遮挡不了的地方。
第二步
处理验证码输入
handleSubmit (), { 这。美元发出(& # 39;输入# 39;,,this.value) }, handleInput (e), { 这。refs.input.value 美元;=this.value ,if (this.value.length 祝辞=,this.number), { this.hideKeyboard才能() ,} ,this.handleSubmit () }
输入时,给输入框赋一次值,是为了解决android端上输入框失焦后重新聚焦,输入光标会定在第一位的前面,经过赋值再聚焦,光标的位置就会显示在最后一位后面。
第三步
完成输入后关闭虚拟键盘
hideKeyboard (), { ,//输入完成隐藏键盘 ,document.activeElement.blur (),//, ios隐藏键盘 这。$ refs.input.blur (),//, android隐藏键盘 }
<>强组件完整代码强>
& lt; !——四位验证码输入框组件——比; & lt; template> ,& lt; div 类=皊ecurity-code-wrap"比;=?& lt; label ; code"比; & lt;才能ul 类=皊ecurity-code-container"比; & lt;才能li 类=癴ield-wrap", v=?项目,,指数),拷贝number",:关键=癷ndex"比; ,,& lt;小姐:类=癱har-field"在{{价值(指数),| |,占位符}}& lt;/i> & lt;才能/li> & lt;才能/ul> ,& lt;/label> ,& lt; input  ref=癷nput",类=癷nput-code", @keyup=癶andleInput(事件)美元“,v模型=皏alue" ,,id=癱ode", name=癱ode",类型=皌el",:最大长度=皀umber" ,,自动更正=皁ff",自动完成=皁ff", autocapitalize=皁ff"比; ,& lt;/div> & lt;/template> & lt; script> ,export default  { ,名字:& # 39;SecurityCode& # 39; ,//component 属性 ,道具:{ ,,数量:{ 类型:才能,号码, ,,默认值:4 ,,}, ,,占位符:{ ,,类型:字符串, ,,默认值:& # 39;& # 39; ,,} }, ,//变量 ,数据(){ return {才能 ,,值:& # 39;& # 39; ,,} }, ,方法:{ hideKeyboard才能(),{//,才能输入完成隐藏键盘 document.activeElement.blur才能(),//,ios隐藏键盘 这才能。$ refs.input.blur (),//, android隐藏键盘 ,,}, handleSubmit才能(),{ 美元。才能发出(& # 39;输入# 39;,,this.value) ,,}, handleInput才能(e), { 这才能。refs.input.value 美元;=this.value if 才能;(this.value.length 祝辞=,this.number), { ,,this.hideKeyboard () ,,} this.handleSubmit才能() ,,} ,} ,} & lt;/script> & lt; style  scoped lang=發ess"比; ,.security-code-wrap { ,溢出:隐藏; ,} ,.security-code-container { ,保证金:0; ,填充:0; ,显示:flex; ,justify-content:中心; ,.field-wrap { null null null null null null null null null null null null null null null null null null null null null null null null nullvue怎么实现验证码输入框组件