javascript - vue 行動端的input 數位輸入最佳化
phpcn_u1582
phpcn_u1582 2017-07-05 10:59:49
0
3
945

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

 
phpcn_u1582
phpcn_u1582

全部回覆 (3)
迷茫
  1. phoneNumber初始值應該是字串的'',否則對一個可能為 null 的變數呼叫replace是不安全的。

  2. var self = this是不必要的。

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

  4. 一行寫的太長了,eslint-airbnb 的規則是

    刘奇

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

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

    比較好

      仅有的幸福

      這裡用的局部filter

      如果想可重複使用程度高點,全域filter也可以的

      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, '') } } })
        最新下載
        更多>
        網站特效
        網站源碼
        網站素材
        前端模板
        關於我們 免責聲明 Sitemap
        PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!