vue限制輸入框只能輸入8位整數(shù)和2位小數(shù)的代碼
看到這個(gè)標(biāo)題好像很簡(jiǎn)單,onblur、onchange事件都能做到,但是用戶體驗(yàn)感貌似很差。查了下百度查不到資料了??戳讼聉ue的基礎(chǔ),發(fā)現(xiàn) vue 有個(gè) watch 監(jiān)聽(tīng)器好吧,從這里入手 用v-model 加watch 就可以很簡(jiǎn)單的實(shí)現(xiàn)這一個(gè)功能。
----代碼省略
<input id="amt" type="number" v-model="amount"/>
----代碼省略
data:{
return{
amount:""
}
}
----代碼省略
watch:{
amount(newVal,oldVal){
console.log(newVal)
var reg = /^(\d{0,8})(\.(\d{0,2}))?$/g;
if(!reg.test(newVal)){
if(newVal == ''){
this.amount = '';
return;
}
this.amount = oldVal
}else{
this.amount = newVal;
}
}
}
ps:vue input控制輸入框十位整數(shù)位兩位小數(shù)位,其他字符不讓輸入
<input type="text" placeholder="請(qǐng)輸入金額" v-model="orderMoney" @input="checkInput" />
checkInput() {
this.orderMoney = this.dealInputVal(this.orderMoney);
},
dealInputVal(value) {
value = value.replace(/^0*(0\.|[1-9])/, "$1");
value = value.replace(/[^\d.]/g, ""); //清除"數(shù)字"和"."以外的字符
value = value.replace(/^\./g, ""); //驗(yàn)證第一個(gè)字符是數(shù)字而不是字符
value = value.replace(/\.{1,}/g, "."); //只保留第一個(gè).清除多余的
value = value
.replace(".", "$#$")
.replace(/\./g, "")
.replace("$#$", ".");
value = value.replace(/^(\-)*(\d*)\.(\d\d).*$/, "$1$2.$3"); //只能輸入兩個(gè)小數(shù)
value =
value.indexOf(".") > 0
? value.split(".")[0].substring(0, 10) + "." + value.split(".")[1]
: value.substring(0, 10);
return value;
}
總結(jié)
以上所述是小編給大家介紹的vue限制輸入框只能輸入8位整數(shù)和2位小數(shù)的代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
vue.js實(shí)現(xiàn)價(jià)格格式化的方法
這里分享一個(gè)常用的價(jià)格格式化的一個(gè)方法,在電商的價(jià)格處理中非常的實(shí)用,具體實(shí)現(xiàn)代碼大家參考下本文2017-05-05
基于Vue3實(shí)現(xiàn)前端埋點(diǎn)上報(bào)插件并打包發(fā)布到npm的詳細(xì)過(guò)程
這篇文章主要介紹了基于Vue3實(shí)現(xiàn)一個(gè)前端埋點(diǎn)上報(bào)插件并打包發(fā)布到npm,本項(xiàng)目采用pnpm進(jìn)行Monorepo環(huán)境搭建,因?yàn)槲磥?lái)這個(gè)項(xiàng)目可能會(huì)加入更多的工具包,需要的朋友可以參考下2022-10-10
Vue使用z-tree處理大數(shù)量的數(shù)據(jù)以及生成樹狀結(jié)構(gòu)
這篇文章主要介紹了Vue使用z-tree處理大數(shù)量的數(shù)據(jù)以及生成樹狀結(jié)構(gòu)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
使用vue-infinite-scroll實(shí)現(xiàn)無(wú)限滾動(dòng)效果
vue-infinite-scroll插件可以無(wú)限滾動(dòng)實(shí)現(xiàn)加載更多,其作用是是當(dāng)滾動(dòng)條滾動(dòng)到距離底部的指定高度時(shí)觸發(fā)某個(gè)方法。這篇文章主要介紹了用vue-infinite-scroll實(shí)現(xiàn)無(wú)限滾動(dòng)效果,需要的朋友可以參考下2018-06-06
vue.js聲明式渲染和條件與循環(huán)基礎(chǔ)知識(shí)
這篇文章主要為大家詳細(xì)介紹了vue.js聲明式渲染和條件與循環(huán)的基礎(chǔ)知識(shí),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
uniapp開發(fā)打包成H5部署到服務(wù)器的詳細(xì)步驟
前端使用uniapp開發(fā)項(xiàng)目完成后,需要將頁(yè)面打包,生成H5的靜態(tài)文件,部署在服務(wù)器上這樣通過(guò)服務(wù)器鏈接地址,直接可以在手機(jī)上點(diǎn)開來(lái)訪問(wèn),下面小編給大家講解uniapp開發(fā)打包成H5部署到服務(wù)器的步驟,感興趣的朋友一起看看吧2022-11-11
前端vue項(xiàng)目debugger調(diào)試操作詳解
在vue項(xiàng)目調(diào)試的時(shí)候,代碼里面標(biāo)注debugger,這篇文章主要給大家介紹了關(guān)于前端vue項(xiàng)目debugger調(diào)試操作的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05
vue?router進(jìn)行路由跳轉(zhuǎn)并攜帶參數(shù)的實(shí)例詳解(params/query)
在使用`router.push`進(jìn)行路由跳轉(zhuǎn)到另一個(gè)組件時(shí),可以通過(guò)`params`或`query`來(lái)傳遞參數(shù),這篇文章主要介紹了vue?router進(jìn)行路由跳轉(zhuǎn)并攜帶參數(shù)(params/query),需要的朋友可以參考下2023-09-09

