1. 程式人生 > 其它 >vue input 或 el-input type=“number” 輸入數字,去除右側箭頭

vue input 或 el-input type=“number” 輸入數字,去除右側箭頭

問題描述:

input或者el-input中新增type=number來控制只可輸入數字。
但隨之而來的問題是 輸入框右側會有個上下調整箭頭
在這裡插入圖片描述

解決方法:

input

常用的解決方法,實際是將控制顯示箭頭的 css樣式去掉;
但少部分會不好用,因此可以添加個class來指定。

<template>
    <Input v-model="value" placeholder="微信內部號碼" type="number" number="true" class="aaaa"  :
maxlength="20" clearable style="width:80%;ime-mode:Disabled" @on-keydown="changeaa(event)"> <span slot="prepend">微信</span> </Input> </template> <script> export default { data () { return { value:
'' } }, methods:{ changeaa(event){ //禁止非數字字元輸入 if(event.keyCode<48||event.keyCode>57)event.returnValue=false; } } } </script> <style> .aaaa input::-webkit-outer-spin-button, .aaaa input::-webkit-inner-spin-button {
-webkit-appearance: none; } .aaaa input[type="number"] { -moz-appearance: textfield; } </style>

el-input

不過對於el-input此方法仍然不好用
其中
v-model.number 使用修飾符.number可以將輸入的資料轉換為Number型別,否則雖然你輸入的是數字.但仍為子串型別
然後我們將type設定為number,但發現 樣式設定後,仍不生效。
因此,使用/deep/

<el-form-item label="測試數字編號" prop="departnum_id">
     <el-input v-model="deptForm.departnum_id" type="number" class="numrule":min="0" :max="99999" placeholder="11001" />
</el-form-item>

<style lang="css" scoped>
  /deep/.numrule input::-webkit-outer-spin-button,
  /deep/.numrule input::-webkit-inner-spin-button {
    -webkit-appearance: none!important;
  }
  /deep/.numrule input[type="number"]{
    -moz-appearance: textfield;
  }
  </style>