1. 程式人生 > >Element 中表單非必填數據項 必須為數字的驗證問題

Element 中表單非必填數據項 必須為數字的驗證問題

ont PE cas trigge ring 出現 使用 class false

Element-ui 的el-form組建中,自帶基本的驗證功能,比如某些項必填的驗證,直接加入rules 規則中即可,如下實例:

在頁面中書寫如下:

1 <el-form-item label="月份:" prop="firstDay">
2    <common-month-select :year="year" @monthChange="monthChange" :selectMonth="selectMonth"></common-month-select>
3 </el-form-item>

在vue 初始化data中

1  filterForm: {
2 firstDay: ‘‘, 3 lastDay: ‘‘ 4 }, 5 rules: { 6 firstDay: [{ type: ‘string‘, required: true, message: ‘請選擇日期範圍‘, trigger: ‘submit‘ }], 7 lastDay: [{ type: ‘string‘, required: true, message: ‘請選擇日期範圍‘, trigger: ‘submit‘ }], 8 }

這樣就會對日期進行必填驗證。

但是現在遇到一個這樣的問題,表單中有一個數據,比如是數字,但是又非必填項,這時候直接使用上面的方式進行驗證,就會出現問題。

比如,如果沒有填寫數字,提交表單的時候就會提示設定的警告信息,這不是我們想要的,因為是非必填項,所以當用戶不填寫的時候,應該也可以直接提交,填寫的時候,驗證必須是數字即可。

技術分享圖片

解決方案:在rules 中驗證這個功能的時候,對填寫的數值進行判斷

 rules: {
          averageCaseRunTime: [{
            type: ‘number‘,
            trigger: ‘blur‘,
            required: false,
            message: ‘平均用例運行時長必須為數字值‘,
            transform (value) {
              
return _.toNumber(value) } }] }

這樣在提交的時候,就不會因為用戶沒有輸入任何數值,提示警告信息了。

Element 中表單非必填數據項 必須為數字的驗證問題