色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

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

瀏覽:60日期: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
相關文章:
主站蜘蛛池模板: 99久久国产综合精品1尤物 | 国产精品久久久久影视不卡 | 国产成人啪精品视频免费软件 | 欧美国产91 | 女人张开腿让男人桶视频免费大全 | 毛片大全免费 | 久久免视频 | 欧美一区二区三区在线播放 | 日韩一区二区三区不卡视频 | 成人在线观看午夜 | 亚洲国产高清在线 | 色欧美与xxxxx| 美女视频黄a | 男女视频免费看 | 我要看欧美精品一级毛片 | 王朝影院一区二区三区入口 | 91香蕉国产线观看免 | 久久99国产精品久久99无号码 | 国产成人在线播放视频 | 精品9e精品视频在线观看 | 国产欧美一区二区三区沐欲 | 久久88香港三级台湾三级中文 | 中文字幕 亚洲精品 第1页 | 在线日韩欧美 | 日韩freesex呦交 | 久久99精品久久久久久久不卡 | 国产欧美日韩成人 | 亚洲自拍成人 | 一区二区三区欧美 | 欧美成人午夜不卡在线视频 | 国产精品久久久久久影院 | 日韩欧美中文字幕在线播放 | 在线播放亚洲精品 | 91香蕉国产在线观看免费永久 | 日本xxxxxxx69xx| 精品视频免费在线 | 丝袜足液精子免费视频 | 国产制服 国产制服一区二区 | 日韩精品无码一区二区三区 | 久久有这有精品在线观看 | 欧美成人综合在线 |