sleepyboy_x素人约会457部187Gmyfans付费内容超值珍藏
myfans博主sleepyboy_x独家付费内容合集,收录457部素人约会实录。...
2026-01-20
在开发过程中,基本都遇到过需要限制输入的情况,比如金额、仅字母数字、可输入小数位等,网上搜了很多方法也遇到一些坑,所以分享出来。

在VUE中可以在v-modal后添加修饰符的形式来限制输入,比如:
<inputv-model.number="testValue"type="number">.number可以实现限制数字输入,但是会有以下问题:
/*普通IE浏览器样式清除*/input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none!important;}/*火狐浏览器样式清除*/input[type="number"]{-moz-appearance:textfield;}通过@input监听更新数据,实现只能输入数字,而且可以自行定制限制输入内容
<inputv-model="testValue"@input="testValue=testValue.replace(/[^d]/g,'')">此方法可以满足需求,但是无法封装进行批量使用
封装input限制输入指令
//input.jsconstaddListener=function(el,type,fn){el.addEventListener(type,fn,false)}//去掉空格constspaceFilter=function(el){addListener(el,'input',()=>{el.value=el.value.replace(/s+/,'')})}//限制只能输入整数和小数(价格类、最多两位小数)constpriceFilter=function(el){addListener(el,'input',()=>{el.value=(el.value.match(/^d*(.?d{0,2})/g)[0])||nullif(isNaN(el.value)){el.value=''}})}exportdefault{bind(el,binding){if(el.tagName.toLowerCase()!=='input'){el=el.getElementsByTagName('input')[0]}spaceFilter(el)switch(binding.arg){case'price':priceFilter(el)breakdefault:console.warn('未知指令类型',binding.arg)break}}}注册全局自定义指令
//main.jsimportinputFilterfrom'@/directives/InputFilter.js'Vue.directive('inputFilter',inputFilter)使用v-input-filter指令
<inputv-modal="testValue"v-input-filter:price>这样封装在使用时会出现一个隐蔽的bug,就是在输入指令中正则限制以外的字符时,视图中输入框显示是正确的,但是在浏览器控制栏Vue Devtools中的testValue最后一位字符是最后输入的时的字符。
比如输入abc、123abc输入框内是 、123,但实际testValue值是c、123c。
原因是vue中绑定的值是通过监听input进行赋值的,直接修改输入框值不会触发input事件,需要通过dispatchEvent再次手动触发input事件,修改如下:
//input.js···//防抖letdebounce=(fn,delay)=>{vardelay=delay||100;vartimer;returnfunction(){varth=this;varargs=arguments;if(timer){clearTimeout(timer);}timer=setTimeout(function(){timer=null;fn.apply(th,args);},delay);};}···//限制只能输入整数和小数(价格类、两位小数)constpriceFilter=function(el){addListener(el,'input',debounce(()=>{//添加防抖防止反复触发事件导致内存溢出el.value=(el.value.match(/^d*(.?d{0,2})/g)[0])||nullif(isNaN(el.value)){el.value=''}//触发input事件el.dispatchEvent(newEvent('input'))}))}···到这里算是满足了要求,也能方便的使用,分享出来希望能够抛砖引玉,学习到更好的方式,如果有更好的方法请告诉我,谢谢!
以上内容就是为大家推荐的input清空内容(清除文本框内容的代码)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题
内容来源于网络仅供参考版权声明:所有来源标注为小樱知识网www.xiaoyin02.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。
本文标题:input清空内容(清除文本框内容的代码)
本文地址:https://www.xiaoyin02.com/shcs/118178.html
相关文章
热点文章
2021年独生子女补贴新政策是真的吗(独生子女证有有效期吗)
2021年国庆节阅兵仪式几点开始几点结束(2021年国庆节还有阅兵吗)
鼠目寸光一点红是什么生肖动物(鼠目寸光一点红)指什么生肖,紧密
k0到k9的玩法大全(强制gc的玩法和注意事项)
入土为安是什么生肖《入土为安》打一个生肖动物,词语解释
浙江12月底全面停工是真的吗(浙江什么时候放假停工)
如何做t(t怎么把p做哭)
北京口碑最差的三甲医院(北京301医院最擅长什么)