在ant-design-vue的form表單驗證中,有很多封裝很好的組件,但不完全滿足於你的需求,更多的是在現有的基礎上擴展出其他。
需求:
點擊按鈕彈出dialog選擇項,當用戶選取需要項,關閉dialog,根據判斷用戶是否選擇一個及以上,若選擇大於一項,無提示。用戶未選擇時,提示用戶未選擇。如下圖
思路:
在同一個forne-item分別定義輸入框input和btn組件,
將input組件雙向綁定根據按鈕選擇子組件傳給父組件的數據,判斷input的值。
話不多說了,狀態不好,直接上代碼!!
<a-form-model ref="editForm" :model="form" :rules="rules" :label-col="labelCol" :wrapper-col="wrapperCol" > <a-form-model-item required :label="選擇項" prop="programList" > <a-input style="width:10px;height:30px;display:none;" v-model="form.programList" /> <a-button color="#6BAFCE" @click="selectPrograme"> 按鈕</a-button > </a-form-model-item> </a-form-model>
computed: { rules() { return { scheduleName: { required: true, message: 提示信息, trigger: 'blur', programList: [ { required: true, message: 提示信息, trigger: 'change', }, { validator: (rule, value, callback) => { if (this.form.programList == undefined) { callback( new Error(提示信息)) ); return; } return callback(); }, }, ], }; }, },
保存時對信息校驗 this.$refs.editForm.validate(valid => { if (!valid) { console.log('不發送'); this.loading = false; return; } console.log('發送'); }