vue表单 input框只允许输入价格的处理

本文详细介绍了如何在Vue.js中使用watch和事件处理函数实现金额输入框的限制与格式化。通过watch监听amount的变化,清除非数字和小数点字符,处理0开头和只有两位小数的情况,确保输入符合规范。同时,amountBlur事件用于移除末尾的小数点,确保数据的正确性。
摘要由CSDN通过智能技术生成

<input @blur=“amountBlur” type=“text” v-model=“amount”/>

1、对 amount 增加 watch,限制输入。

 watch: {
    mount(val) {
    //先清除字符串中的所有非(数字和小数点)的字符。
     val=`${val}`.replace(/[^\d.]/g, '')
     
     //处理0开头的问题
     if(val.length>1){
      val = val.replace(/^0+/, '');
      val = val.length==0 ? "0" : val;
     }
     if( val.startsWith(".") ){
       val = "0"+val;
     }

     //处理只有两位小数的问题
     let dotIndex = val.indexOf(".") 
     if(dotIndex > 0 &&  dotIndex < val.length-3 ){
       val = val.substring( 0, dotIndex+3 );
     }
	 
	 #这样写,主要是兼容差的机器。
      setTimeout( ()=>{
        this.mount = val;
      })
    },
  },

2、增加 amountBlur 响应事件,用于去除最后一个小数点

methods: {
    amountBlur() {
      this.amount = this.amount.replace(/\.$/, "");
    }
}    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值