ant-design-vue 1.x 的 a-form怎样设置表单必填项

环境

  • ant-design-vue: 1.7.8
  • vue2

问题

老项目使用了ant-design-vue: 1.7.8,因为其基于vue2,迁移vue3太过耗费精力。
我们知道,在vue3中实现表单的必填验证相当简单,只需要在a-form-item中设置rules即可:

<a-form-item
    label="名称"
    name="name"
    :rules="[{ required: true, message: '请填写名称' }]"
>

但是这个方法在ant-design-vue: 1.7.8,无效。

解决办法

  • 使用a-form-model代替a-form
  • 设置ref
  • 设置rules规则
  • 设置触发规则@blur
  • 在提交数据时,设置必填项验证
<a-form-model
    ref="form"
    layout="vertical"
    :model="formState"
    :rules="rules"
>
    <a-form-model-item
      label="区域名称"
      prop="areaName"
      ref="areaName"
    >
      <a-input
        v-model="formState.areaName"
        @blur="
          () => {
            $refs.areaName.onFieldBlur();
          }"
      />
   </a-form-model-item>
</a-form-model>

提交数据时:

    save () {
      // 验证必填项
      this.$refs.form.validate(valid => {
        if (!valid) {
          return false
        } else {
          // TODO 业务逻辑
            })
          }
        }
      })
    }

以上。
鉴于本人经验有限,以上问题可能理解不到位或有错误,如有发现请各位评论指正,避免误导更多人。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容