input[type=number]下禁止輸入e、+、-的解決方案

@TOC

在我們開發(fā)過程中,難免遇到這樣的需求,需要一個輸入框,并且只能輸入數(shù)字,不能輸入其他任何字符,這時候各種正則校驗替換真的是苦不堪言~ 有時候弄得焦頭爛額還要被嘲諷le se ... 接下來給大家介紹個神奇的解決方案,走過路過的朋友,有錢的捧個錢場,沒錢的捧個人場,點個贊什么的我最喜歡啦;廢話說多了,下邊請看:

輸入框input[type=number]

首先為何輸入框input[type=number]能輸入e呢? 究竟這個e是何方神圣,查閱資料得知,原來e = 2.71828...

解決:
在inpu原生事件中把非數(shù)字的按鍵過濾掉,具體操作如下:

onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))" 

// 如:
 <input v-model="goPage"
   onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))" 
   :max="9999999" type="number" placeholder="請輸入"></input>
        

驚不驚喜?意不意外?是不是解決啦 ^ _ ^

作者就是喜歡買一送一!
輸入框有自帶的上下箭頭,即input[type=number]實際上為步距輸入框也就是計數(shù)器..會有自帶的樣式,順帶下面附上解決方案...

CSS去默認(rèn)樣式

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;
}

總結(jié):沒有什么坑解決不了滴,如果對你有幫助,請點個關(guān)注或者喜歡喔

樓主博客安靜Eno

樓主github

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容