html
<template v-for="(item, index) in declarationInfoFieldList" :key="item.id">
<div class="detail-title" :data-id="3">{{ item.templateName }}</div>
<q-form
:isReadonly="isDetail"
class="is-three-form"
label-width="130px"
:ref="(el:any) => setFormRef(el, index)"
:fieldForm="myFieldForm"
:fieldList="item.list"
>
</q-form>
</template>
js
// 動(dòng)態(tài)ref
const formRefList = ref<any[]>([]);
const setFormRef = (el: any, index: number) => {
if (el) {
formRefList.value[index] = el;
}
};
// 提交
const submit = () => {
return new Promise(async (resolve) => {
let allValid = true;
const formRefListLength = formRefList.value.length;
for (let i = 0; i < formRefListLength; i++) {
const formRef = formRefList.value[i];
try {
const valid = await new Promise((resolveValidate) => {
formRef.validate((isValid: any) => {
resolveValidate(isValid);
});
});
if (!valid) {
allValid = false;
ElMessage.error("請(qǐng)完善" + declarationInfoFieldList.value[i].templateName + "!");
break; // 一旦發(fā)現(xiàn)無(wú)效表單,立即退出循環(huán)
}
} catch (error) {
// 處理可能的錯(cuò)誤,例如表單驗(yàn)證回調(diào)未正確調(diào)用
console.error("表單驗(yàn)證出錯(cuò):", error);
allValid = false;
break;
}
}
if (allValid) {
resolve(true); // 所有表單都有效
} else {
resolve(false); // 至少有一個(gè)表單無(wú)效
}
});
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。