当前位置: 首页 > Web前端 > HTML5

vue命令只能输入正数,只能输入一位小数

时间:2023-04-05 23:27:59 HTML5

最近在做一个金额查询,验证的时候总是出很多问题。比如输入-号后,输入框没有了,但是模型里面还在。是绑定的,提交的时候会报错。真是令人沮丧。小数点也被输入框过滤掉了,但是提交的时候也会出现。不过经过千辛万苦,终于找到了解决办法,在这里分享给大家``。Vue.directive('numbers',{bind:function(el,binding){console.log('ere')},inserted:function(el){//el.querySelector('input').blur(console.log('etset'))},update:function(el,binding,vnode,oldVnode){console.log('vnode',vnode)letexpress=vnode.data.directives[1].expression//让值=el.querySelector('input').valueletvalue=vnode.data.directives[1].valueif(typeofvalue==='string'){}//在重新设置的时候清空if(value.split('.').length-1>1){value=value.replace(/\.{2,}/g,'')//只保留第一个。清除剩余的value=value.replace('.','$#$').replace(/\./g,'').replace('$#$','.')}letrepeatValue=value.replace(/[^\d.]/g,'')//setTimeout(()=>{//el.querySelector('input').value=repeatValue//},5)setValueWithExpressionVue(vnode.context.$data,express,repeatValue)},componentUpdated:function(){},unbind:function(el){}})//函数setValueWithExpressionVue(currObj,expression,value){expression=expression.split('.')expression.forEach(function(arg,i){if(i