vue3整数指令,即拿即用

1、创建ts文件 

import type { Directive } from "vue";
/**
  自定义输入限制指令,提供多种输入模式:
* 1、默认模式:只能输入0和正整数,使用:<el-input v-int />
* 2、小数模式:只能输入0和小数,使用:<el-input v-int="'decimal'" />
* 3、正整数模式:只能输入正整数,使用:<el-input v-intr="'positiveInteger'" />
* 4、大于0小数模式:只能输入大于0的小数,使用:<el-input  v-int="'positiveDecimal'" />
  使用方法:在 v-int 后面传递对应的模式参数。
*/
const int: Directive = {
  mounted(el, binding) {
    const { value } = binding;
    el.addEventListener("input", event => {
      event.preventDefault(); // 阻止默认输入行为
      const inputValue = event.target.value;
      switch (value) {
        case "decimal":
        case "positiveDecimal":
          event.target.value = inputValue.replace(/[^0-9.]|(\..*)\./g, "$1");
          break;
        default:
          event.target.value = inputValue.replace(/[^\d]/g, "");
          break;
      }
      if (
        ["positiveInteger", "positiveDecimal"].includes(value) &&
        Number(inputValue) === 0
      ) {
        event.target.value = "";
      }
    });
  }
};

export default int;

2、引入

import int from "@/directives/int/index";
const vInt = int;

3、使用

 <el-input
  v-model="data"
  v-int
/>

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值