<template><div><div v-for="(formData, index) in forms" :key="index"><u-form :model="formData" :rules="rules" ref="formRefs"><u-form-item label="用户名" prop="username"><u-input v-model="formData.username"></u-input></u-form-item><u-form-item label="密码" prop="password"><u-input type="password" v-model="formData.password"></u-input></u-form-item></u-form></div><u-button @click="submitForm()">提交</u-button></div>
</template><script setup>
import { reactive, ref } from "vue";const forms = reactive([{ username: "", password: "" },{ username: "", password: "" },
]);const formRefs = ref([]);const rules = {username: [{ required: true, message: "请输入用户名", trigger: "blur" }],password: [{ required: true, message: "请输入密码", trigger: "blur" }],
};const submitForm = () => {if (formRefs.value?.length) {Promise.all(formRefs.value?.map((ref) => ref.validate())).then((results) => {console.log("验证结果", results);if (results.some((res) => !res)) {uni.$u.toast("请正确填写必填项!");} else {console.log("校验通过")}}).catch((errors) => {uni.$u.toast("请正确填写必填项!");});}
};
</script>