国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

javascript - vue 移動端的input 數字輸入優化

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

問題描述

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

<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 初始值應該是字符串的 ’’,否則對一個可能為 null 的變量調用 replace 是不安全的。

var self = this 是不必要的。

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

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

<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

如果想可復用程度高點,全局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, ’’) } }})

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 国产播放 | 偷拍自拍视频在线 | 一级大黄美女免费播放 | 色久综合网| 国产香蕉成人综合精品视频 | 亚洲一区2区三区4区5区 | 国产成人在线观看免费网站 | 成人欧美一区二区三区黑人免费 | 亚洲国产第一区二区三区 | 国内精品久久影视 | 男女超猛烈啪啦啦的免费视频 | 精品国产系列 | 中文国产日韩欧美视频 | 国产一区二区在线视频播放 | 亚洲视频一区二区在线观看 | 亚洲人成综合网站在线 | 99视频在线观看视频一区 | 久久一本色道综合 | 免费大片黄手机在线观看 | 美国全免费特一级毛片 | 精品视频网 | 午夜欧美成人久久久久久 | 免费播放毛片 | 米奇777色狠狠8888影视 | jyzzjyzzjyzz日本在线观看 | 国产成人综合精品 | 国产午夜亚洲精品国产 | 波多野结衣一级 | 黄色福利网 | 天天五月天丁香婷婷深爱综合 | 国产精品免费_区二区三区观看 | 日本在线资源 | 成人韩免费网站 | 亚洲一区二区三区在线播放 | 午夜国产理论 | 国产中文99视频在线观看 | 男人女人真曰批视频播放 | www.亚色| 日韩视频在线观看一区二区 | 久久精品中文字幕第一页 | 中文字幕一区在线观看 |