亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - vue 移動端的input 數(shù)字輸入優(yōu)化

瀏覽:39日期:2023-02-27 09:13:01

問題描述

這是移動端使用的, input type 為number 時 英文或中文都沒有限制,而且maxlength不起作用,input type 為tel 時 英文或中文也都沒有限制,但maxlength有作用,所以用tel,keyup 是為了過濾數(shù)字以外的字符。請問大神這段代碼還有沒有優(yōu)化的空間?

<input v-model='phoneNumber' placeholder='輸入手機號' type='tel' maxlength='11' @keyup='handleFilterLetters'><script type='text/javascript'> vm = new Vue({ el: '#app', data: {phoneNumber: null, }, methods: {handleFilterLetters: function(){ var self = this; self.phoneNumber=self.phoneNumber.replace(/[^d]/g,’’);}, }})</script>

問題解答

回答1:

phoneNumber 初始值應(yīng)該是字符串的 ’’,否則對一個可能為 null 的變量調(diào)用 replace 是不安全的。

var self = this 是不必要的。

handleFilterLetters 好長啊,改成 onKeyUp 不好讀一點嗎(

<input> 一行寫的太長了,eslint-airbnb 的規(guī)則是

<input v-model='phoneNumber' placeholder='輸入手機號' type='tel' maxlength='11' @keyup='handleFilterLetters'/>回答2:

樓上說的都對題主還可以多注意一下 code style 比如:self.phoneNumber=self.phoneNumber.replace(/[^d]/g,’’);

寫成self.phoneNumber = self.phoneNumber.replace(/[^d]/g,’’);

比較好

回答3:

這里用的局部filter

如果想可復(fù)用程度高點,全局filter也可以的

<p > <input :value='phone | num' @keyup='phoneChange' /></p>

var app = new Vue({ el: '#app', data: { phone: '' }, methods: { phoneChange(e) { this.phone = e.target.value this.$forceUpdate() // 這里必須有 } }, filters: { ’num’: function(value) { return value.replace(/[^d]/g, ’’) } }})

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 97视频精品全国在线观看 | 91精品一区二区三区在线观看 | 美女扒开胸罩露出奶了无遮挡免费 | 在线播放成人毛片免费视 | 91蝌蚪视频在线观看 | 国产二区视频 | 欧洲色吧 | 黄网免费看| 久久一区不卡中文字幕 | 黄色性生活视频 | 日本欧美中文字幕 | 一区二区在线不卡 | 免费a级毛片无码 | 亚洲欧美日韩在线播放 | 美欧毛片| 最全精品自拍视频在线 | 看中国国产一级毛片真人视频 | 色婷婷欧美 | 中文无码日韩欧免费视频 | 精品久久视频 | xxx国产hd | 黄色在线观看国产 | 日韩欧美视频 | 亚洲免费国产 | 国产伦精品一区二区三区无广告 | 悠悠资源先锋中文站 | 青青青国产依人精品视频 | 久久久不卡国产精品一区二区 | 国产综合色在线视频 | 欧美一级精品高清在线观看 | 日本一级片在线播放 | 69成人免费视频 | 美国一级做a爰片性色毛片 美国人与性xxxxxxx | 欧美日韩一区二区在线观看 | 精品中文字幕在线观看 | 国产精品专区第二 | 日本一本高清v免费视频 | 国产乱理伦片在线观看大陆 | 欧美视频黑鬼大战白妞 | 欧美日韩国产在线人成 | 久久精品国产只有精品2020 |