vue中number未过滤e、+、-

image.png
<el-input
  type="number"
  v-model="number"
   min="0"
  ></el-input>

输入e、+、-时, input框没过滤,说好的只是数字呢

解决办法

onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
<el-input
  onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
  type="number"
  v-model="number"
  :min="0"
  :max="10"
></el-input>

emmm~~~ 发现他竟然无法判断最大值和最小值,但是触发递增递减确可以 那好吧 再加行代码手动判断@change="changeNumber($event, scope)"

<el-input
  onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
  @change="changeNumber($event, scope)"
  type="number"
  v-model="number"
  :min="0"
  :max="10"
></el-input>

methods: 新增:

changeNumber(value, obj) {
           console.log(value, obj)
           if (+value > this.projectList[obj.$index].projectScore) {
               this.projectList[obj.$index].score = this.projectList[obj.$index].projectScore
               return
           }
           if (+value < 0) {
               this.projectList[obj.$index].score = 0
               return
           }
       },

此时发现上下箭头真丑要不去了吧。

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
}
input[type='number'] {
    -moz-appearance: textfield;
}
// vue的scope下
/deep/ input::-webkit-outer-spin-button,
/deep/ input::-webkit-inner-spin-button {
    -webkit-appearance: none;
}
/deep/ input[type='number'] {
    -moz-appearance: textfield;
}

哈哈哈哈。好像可以 就这样吧。交差。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • typora-copy-images-to: media 基本语法 上午 javascript基本介绍 JavaS...
    许明浩阅读 271评论 0 0
  • vue框架 webpack 模块(内置模块和第三方模块)第三方模块 vue框架入门及组件 概念:是用于构建用户界...
    朱明豪阅读 386评论 0 0
  • 我们对普通输入框进行扩展,实现一个可快捷输入数字组件。 首先制定规则: 只能输入数字。 设计两个快捷按钮,可直接在...
    deniro阅读 1,383评论 0 12
  • vue基础知识部分 扯淡前言 这个笔记是关于vue的所有重点基础知识,大部分配的有实例,这些实例都是我自己一个个敲...
    stephenoo阅读 243评论 0 0
  • 刚刚又把昨天做的几道题重新做了一遍,保证自己做过的都记住,现在开始今天的刷题啦~ 两数之和四-输入BST 题目:给...
    唯有努力不欺人丶阅读 337评论 0 3