如何去掉el-input-number两侧的上下按键

期初做法

  • 输入的数据都是数字,就想着使用number类型的输入框
  • 但是输入框很小的情况下,就会导致上下按键特别占地方,所以想去掉
  • 使用deep 语法进行样式覆盖
<style scoped>
/deep/ input::-webkit-outer-spin-button,
/deep/ input::-webkit-inner-spin-button {
  -webkit-appearance: none;
}
/deep/ input[type="number"] {
  -moz-appearance: textfield;
}
/deep/ inpit {
  border: none
}
</style>

使用一般的input,使用正则表达式达到理想效果

  • 上述方法虽然去掉了上下箭头,但是这个number类型没法数据负数和小数啊
  • 所以打算使用正则表达式达到限制的效果
  • @input 会在有输入内容的时候被调用
   <el-input
     v-model="minValueComputed"
     @input="minValueComputed = handleInput(minValueComputed)"
   />
  • 定义的这个方法限制了输入范围是 数字,负号和小数点
  • 如果查出这个范围就无法输入成功
    handleInput(value) {
      return value.replace(/[^\d|\.|-]/g, '');
    },