antd Form组件表单在vue3中的使用

antd Form表单组件有个最需要注意的问题,官方文档里写的很清楚:

在这里插入图片描述
这是什么意思,我们下面说个例子就明白了:

<template>
  <a-form
    ref="formRef"
    :model="formState"
    :rules="rules"
    :label-col="labelCol"
    :wrapper-col="wrapperCol"
  >
    <a-form-item ref="username" name="username">
      <label>Username:</label>
      <a-input v-model:value="formState.username" />
    </a-form-item>
    <a-form-item :wrapper-col="{ span: 14, offset: 4 }">
      <a-button type="primary" @click="onSubmit">Create</a-button>
      <a-button style="margin-left: 10px" @click="resetForm">Reset</a-button>
    </a-form-item>
  </a-form>
</template>

在这里插入图片描述
这里<a-form-item>的标签name属性需要和表单对象formState里面的字段username对应上,包含在标签里面的<a-input>标签的v-model:value绑定formState.username

这里a-form-item里面的name属性是用来给rules验证规则对应使用的
在这里插入图片描述

import { defineComponent, reactive, ref, toRaw } from "vue"
export default defineComponent({
  setup() {
    const formState = reactive({
      name: "",
      username: '',
      password: '',
      password2: '',
      code: ''
    })
    const rules = {
      username: [
        { required: true, message: "请输入用户名", trigger: "blur" },
        { min: 3, max: 5, message: "Length should be 3 to 5", trigger: "blur" }
      ]
    }
    
    return {
      labelCol: {
        span: 4,
      },
      wrapperCol: {
        span: 14,
      },
      formState,
      rules
    }
  }
})

表单数据存在formState里面
在这里插入图片描述
验证规则存在rules里面
在这里插入图片描述
最后别忘了返回:
在这里插入图片描述
效果:
当失去焦点的时候,会提示用户
在这里插入图片描述
输入字符长度不在3-5之间的话,也会提示:
在这里插入图片描述

但是如果这样写,就不会有错误提示了:

在这里插入图片描述
效果:
失去焦点以后,并不会提示:
在这里插入图片描述
这就是官方文档里面提到的,<a-form-item>只会监听第一个子元素的变化
在这里插入图片描述
如果我们调换一下位置:
在这里插入图片描述
又可以提示了:
在这里插入图片描述

如果非要把label放在输入框上面,又不想影响提示功能,怎么办??

<a-form-item>上面套一个div不就完事了:
在这里插入图片描述
效果:
在这里插入图片描述
当然最方便的就是默认的样式,直接在<a-form-item>标签里面配置label属性就可以了:
在这里插入图片描述
效果:
在这里插入图片描述

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值