一般情况下,<a-form-model-item只能校验一个变量
<a-form-model-item prop="name" label="姓名">
<a-input v-model="form.name" />
</a-form-model-item>
但是有时候,一个<a-form-model-item可能有多个输入框,而且都必须检验,可以如下写法
<a-form-model-item label="地址" required>
<a-form-model-item prop="province">
<a-input v-model="form.province" />
</a-form-model-item>
<a-form-model-item prop="city">
<a-input v-model="form.city" />
</a-form-model-item>
</a-form-model-item>
注意的是,最外层的<a-form-model-item 需要有required属性和label,子元素的<a-form-model-item 只有一个prop属性
完整代码如下
<template>
<div>
<a-form-model
ref="form"
:model="form"
:rules="rules"
:label-col="{ span: 5 }"
:wrapper-col="{ span: 12 }"
>
<a-row>
<a-col :span="6">
<a-form-model-item prop="name" label="姓名">
<a-input v-model="form.name" />
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="6">
<a-form-model-item label="地址" required>
<a-form-model-item prop="province">
<a-input v-model="form.province" />
</a-form-model-item>
<a-form-model-item prop="city">
<a-input v-model="form.city" />
</a-form-model-item>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<a-button @click="handleSubmit">handleSubmit</a-button>
</div>
</template>
<script>
export default {
data() {
return {
formLayout: "horizontal",
form: {
name:'',
province: "",
city: "",
},
rules: {
name: [{ required: true, message: "输入姓名" }],
province: [{ required: true, message: "输入省" }],
city: [{ required: true, message: "输入市" }],
},
};
},
methods: {
handleSubmit(e) {
this.$refs.form.validate((err, values) => {
if (!err) {
console.log("Received values of form: ", values);
}
});
},
},
};
</script>
<style lang="scss" scoped>
/deep/.ant-form-item-children {
display: flex;
}
</style>