el-input-number不能input事件

要求input只能输入正整数

用的el-input-number,发现不能实现input,因为拿到的值要做操作,所以最后选择了el-input结合正则来做

<el-input
        class="jzinput
        type="number"
        style="width:85%"
        v-model="scope.row.manuallyDays"
        @input="changeDay($event,scope.row)"
        @mousewheel.native.prevent
          />
    changeDay(e,row) {
      let str = e;
      let len1 = str.substr(0, 1);
      //1.如果第一位是0,后面输入任何数字都直接代替
      if (str.length > 1 && len1 == 0) {
        str = str.substr(1, 1);
      }
      //2.第一位不能是.
      if (len1 == ".") {
        str = "";
      }
      //3.最后进行正则替换,去掉所有的小数位
      str = str.replace(/[^\d^]+/g, ""); // 保留数字和小数点
      row.manuallyDays = str
      if (row.manuallyDays > Number(row.days)) {
        this.$message.error("手动调整后运行天数不能大于运维天数");
        row.manuallyDays = row.systemDays;
        this.tableKey = new Date()+''
      }
    },

去除input后面箭头

input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  -o-appearance: none !important;
  -ms-appearance: none !important;
  appearance: none !important;
  margin: 0;
}
input[type="number"]{
  -webkit-appearance:textfield;
  -moz-appearance:textfield;
  -o-appearance:textfield;
  -ms-appearance:textfield;
  appearance:textfield;
}

虽然输入框尾部的上下箭头去掉了,但是,当我们鼠标焦点在输入框中时,上下滚动鼠标滚轮,这时输入框中的数字会发生变化,容易导致误操作,这时只需要将el-input元素改成如下即可。

<el-input type="number" v-model.number="numberData" @mousewheel.native.prevent></el-input>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值