_antvue 必填">
赞
踩
"ant-design-vue": "1.7.6"
不知道公司为什么非要用蚂蚁金服1.x版本的组件,还是新项目,问题很多bug不少本文记录第一个必填项bug
项目内a-form-model表单某几个属性需要增加必填项
试了以前element-ui的三种方式
1. rules校验规则:失效
代码:
<a-form-model :rules="rules" layout="horizontal" ref="ruleForm" :model="sendForm" :labelCol="{ span: 5 }" :wrapperCol="{ span: 12 }">
<a-form-model-item label="发送类型" prop="template_type">
<a-radio-group v-model="sendForm.template_type">
<a-radio v-for="(e, index) in templateTypeList" :key="index" :value="e.id">
{{ e.name }}
</a-radio>
</a-radio-group>
</a-form-model-item>
</a-form-model>
data定义:
rules: {
template_type: [{ required: true, message: '请选择发送类型', trigger: 'blur' }]
}
2. required直接写死:失效
代码:
<a-form-model-item label="测试数据" prop="template_test_json">
<a-input v-model="sendForm.template_test_json" placeholder="请输入json格式测试数据" required/>
</a-form-model-item>
3. vue3实现表单的必填验证:失效,这个是因为蚂蚁金服1.x版本采用vue2
<a-form-model-item label="测试数据" prop="template_test_json">
<a-input v-model="sendForm.template_test_json" placeholder="请输入json格式测试数据" :rules="[{ required: true, message: '请输入json格式测试数据' }]"/>
</a-form-model-item>
- <template>
- <a-form-model :rules="rules" layout="horizontal" ref="ruleForm" :model="sendForm" :labelCol="{ span: 5 }" :wrapperCol="{ span: 12 }">
- <a-form-model-item label="测试数据" prop="template_test_json">
- <a-textarea v-model="sendForm.template_test_json" placeholder="请输入json格式测试数据" />
- </a-form-model-item>
- <a-form-model-item :wrapper-col="{ span: 14, offset: 5 }">
- <a-button type="primary" @click="onSubmit(sendForm)">提交</a-button>
- </a-form-model-item>
- </a-form-model>
- </template>
-
- <script>
- import { sendMSG } from '@/api/bizmd-server.js'
- export default {
- data() {
- return {
- labelCol: { span: 3 },
- wrapperCol: { span: 21 },
- sendForm: {
- template_test_json: ''
- },
- templateTypeList: [],
- rules: {
- template_test_json: [{ required: true, message: '请输入测试数据', trigger: 'blur' }]
- }
- }
- },
- methods: {
- async onSubmit(v) {
- // 验证必填项
- this.$refs.ruleForm.validate(valid => {
- if (!valid) {
- return false
- } else {
- console.log('this.sendForm', this.sendForm)
- let res = sendMSG(this.sendForm)
- }
- })
- }
- }
- }
- </script>
至此解决完毕
并非专业前端,有更好的方法希望可以指点一下。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。