iview 的 Select 下拉框的時候,數據驗證必填,明明選擇了數據,卻一直提示驗證不能通過
html代碼:
<Form ref="FormData" :model="FormData" :rules="ruleValidate" :label-width="100"> <FormItem label="版本信息:" prop="typeId"> <Select v-model="FormData.typeId" placeholder="請選擇" style="width:40%;"> <Option v-for="item in select4" :key="item.value" :label="item.label" :value="item.value"> </Option> </Select> </FormItem> </Form>
獲取數據:
select4: [ { value: 1, label: 'V1版本' }, { value: 2, label: 'V2版本' } ],
驗證規則:
ruleValidate: { typeId: [ { required: true, message: '請選擇版本信息', trigger: 'change' } ] }
查看 iview 的文檔規,發現 iview 默認校驗數據類型為 String,而我的 select 用的 value 是 number 類型的,所以校驗添加 type 類型,所以最后驗證代碼應該寫成下面這種:
ruleValidate: { typeId: [ { required: true, type: 'number', message: '請選擇版本信息', trigger: 'change' } ] }
注意:這個問題只針對動態獲取的數據,如果是自定義的,可以改數據類型改為 String 類型:
select4: [ { value: '1', label: 'V1版本' }, { value: '2', label: 'V2版本' } ],
這樣不加 type 驗證規則,也是可以通過的。
