Vue結合ElementUI,關於表單的最佳實踐之一

1.<el-input>對於number類型數據的表單校驗的問題

//舉例,如coinEarn參數
rules:{

     coinEarn: [
                {
                  type: 'number', required: false, message: '請輸入數字', trigger: 'blur',
                  transform(value) {
                    if (isNaN(value)) {
                      return value
                    } else {
                      return require('lodash').toNumber(value)      //魯大師lodash
                    }
                  }
                },
              ],

原理:利用了【默認校驗規則】中的 transform選項。對原本<el-input>的string值進行了向Number類型的轉換。(順便借用了lodash中的 .toNumber函數)


2.不這樣做的後果

後果:因爲<el-input>中,永遠爲string類型。所以,永遠通過不了 指定type爲’number’的校驗。


3.類似的解法

① Vue的Github,提供的 v-model.number = “coinEarn” + type=”number”的解法。缺點在於,樣式難看。

② 像掘金上面,自己寫一個輪子,彌補<el-input>的缺點。

③ 手動寫很長的自定義校驗規則。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章