2020/06/01追記
[今度こそ完全に理解した]vueで数字しか入力できないinputタグのカスタムコンポーネントを作る
の方で諸問題に対応したコードを公開したのでそちらを参照して頂けると。。。
「数字」とは
ここでいう「数字」というのは
「0」「1」「2」「3」「4」「5」「6」「7」「8」「9」
です
「type="number"」だと
「数値」の入力フォームになるので上記の「数字」の他に「e」「.」「-」などが入力可能
解決策
泥臭い方法しか思いつかず、正規表現で数字以外を取り除くようにしました
うーん、ダサい!
フォーム
<input @input="validate" v-model="numValue">
メソッド
validate() {
this.numValue = this.numValue.replace(/\D/g, '')
},
正規表現
\D
は数字以外にマッチ
g
は全体で複数箇所マッチさせるグローバルサーチというオプション
vue.js以外
タイトルに「vue.jsで」って書きましたがたぶんvue以外でも普通に動くと思います