Ant Design Vue(antd)中FormModel表单验证功能(坑与填坑)

Ant Design Vue中的FormModel组件
在这里插入图片描述
可以在官方文档里面找到表单验证的使用方法
下面是我的具体的代码(会导致错误的代码):
html代码

<a-form-model-item label="Group" prop="group">
        <a-select v-model="basicForm.selectedgroup" placeholder="please select the group">

我的表单数据和自定义的校验规则:

basicForm: {
        selectedgroup: ''},
rules: {
        group: [{required: true, message: 'Please select the group',trigger:'change'}],
      },

可以看到FormItem中的prop和rules中的group是一样的,可是实际跑起来是起不到验证作用的,原因在于没有正确的理解官方文档中的意思,实际上我们需要注意表单中的字段名。
就basicForm来说,里面没有group字段而是selectedgroup,所以prop和rules都需要写成selectedgroup,也就是说需要跟着表单中的数据来,而不是仅仅保持prop和rules一致,这样才不会出现错误。
正确代码应该写成:

<a-form-model-item label="Group" prop="selectedgroup">
        <a-select v-model="basicForm.selectedgroup" placeholder="please select the group">
basicForm: {
        selectedgroup: ''},
rules: {
        selectedgroup: [{required: true, message: 'Please select the group',trigger:'change'}],
      },
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是使用Vue3和Ant Design Vue进行表单验证的示例: ```vue <template> <a-form :form="form" @finish="handleSubmit"> <a-form-item label="名称" name="name" :rules="nameRules"> <a-input v-model="form.name" /> </a-form-item> <a-form-item label="对比项" name="compare" :rules="compareRules"> <a-input v-model="form.compare" /> </a-form-item> <a-form-item label="备注" name="remark" :rules="remarkRules"> <a-input v-model="form.remark" /> </a-form-item> <a-button type="primary" html-type="submit">提交</a-button> </a-form> </template> <script> import { defineComponent, ref } from 'vue'; import { Form, Input, Button } from 'ant-design-vue'; export default defineComponent({ components: { 'a-form': Form, 'a-form-item': Form.Item, 'a-input': Input, 'a-button': Button, }, setup() { const form = ref(null); const nameRules = [ { required: true, message: '名称不能为空' }, ]; const compareRules = [ { required: true, message: '对比项不能为空' }, ]; const remarkRules = [ { required: true, message: '备注不能为空' }, ]; const handleSubmit = () => { form.value.validate((valid) => { if (valid) { // 表单验证通过,执行提交操作 console.log('表单验证通过'); } else { console.log('表单验证失败'); } }); }; return { form, nameRules, compareRules, remarkRules, handleSubmit, }; }, }); </script> ``` 这个示例,我们使用了Vue3的`defineComponent`和`ref`函数来定义组件和创建响应式数据。我们还引入了Ant Design Vue的表单组件,包括`Form`、`FormItem`、`Input`和`Button`。 在模板,我们使用`a-form`组件来创建表单,并将表单对象绑定到`form`变量上。每个表单项都使用`a-form-item`组件包裹,并设置相应的`name`和`rules`属性来进行验证。当点击提交按钮时,我们调用`handleSubmit`方法来进行表单验证,如果验证通过,则执行提交操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值