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

 更新时间:2023年04月22日 09:02:38   作者:Akimoto Hiroshi  
这篇文章主要介绍了antd Form组件表单在vue3中的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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属性就可以了:

效果:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue中的H5移动端项目 真机测试配置方式

    vue中的H5移动端项目 真机测试配置方式

    这篇文章主要介绍了vue中的H5移动端项目 真机测试配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Vue2响应式系统之set和delete

    Vue2响应式系统之set和delete

    这篇文章主要介绍了Vue2响应式系统之set和delete,通过为对象收集依赖,将对象、数组的修改、删除也变成响应式的了,同时为用户提供了和方法,下文详细介绍需要的朋友可以参考一下
    2022-04-04
  • vue实现tab切换的放大镜效果

    vue实现tab切换的放大镜效果

    这篇文章主要为大家详细介绍了vue实现tab切换的放大镜效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法

    从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法

    今天小编就为大家分享一篇从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue计算属性与侦听器和过滤器超详细介绍

    Vue计算属性与侦听器和过滤器超详细介绍

    这篇文章主要介绍了Vue计算属性与侦听器和过滤器,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • vue3如何自定义message弹窗

    vue3如何自定义message弹窗

    这篇文章主要介绍了vue3如何自定义message弹窗问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Vue ElementUI this.$confirm async await封装方式

    Vue ElementUI this.$confirm async await封

    这篇文章主要介绍了Vue ElementUI this.$confirm async await封装方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Vue实现倒计时小功能

    Vue实现倒计时小功能

    这篇文章主要为大家详细介绍了Vue实现倒计时小功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • vue通过watch对input做字数限定的方法

    vue通过watch对input做字数限定的方法

    本篇文章主要介绍了vue通过watch对input做字数限定的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 基于vue-cli3+typescript的tsx开发模板搭建过程分享

    基于vue-cli3+typescript的tsx开发模板搭建过程分享

    这篇文章主要介绍了搭建基于vue-cli3+typescript的tsx开发模板,本文通过实例代码截图的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02

最新评论