vue antd Form表单的使用及说明

 更新时间:2023年04月21日 10:06:28   作者:什么小蛋挞**  
这篇文章主要介绍了vue antd Form表单的使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue antd Form表单的使用

1、安装

$ npm i --save ant-design-vue

2、引入 在 main.js 文件中引入

import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css'
 
Vue.use(Antd);

3、在组件库中找到form组件,将组件代码复制到自己的文件上 

https://www.antdv.com/components/form-cn/    <-- 组件地址

4、使用form表单时 v-decorator 相当于 v-model,所以使用  v-decorator 时不能使用v-model

<a-form :form="form" :label-col="{ span: 5 }" :wrapper-col="{ span: 12 }" @submit="handleSubmit">
    <a-form-item label="Note">
      <a-input
        v-decorator="['note', //value名字 例如:v-model="note"
                         { rules: [
                            { required: true,// 是否必填 true必填 false不必填
                              message: 'Please input your note!' //触发限制时的提示
                             }
                           ] 
                          }
                     ]"
      />
    </a-form-item>
  </a-form>
 
<!-- ----------------------------------------- -->
<script>
export default {
  data() {
    return {
      formLayout: 'horizontal',
      form: this.$form.createForm(this, { name: 'coordinated' }),
    };
  },
  methods: {
   }
};
</script>

5、获取表单的内容,并做限制

methods: {
    handleSubmit(e) {
      e.preventDefault(); //阻止默认操作
      this.form.validateFields((err, values) => { //获取表单的值
        if (!err) {
         console.log(values) //values是表单里面所有值的集合,使用方法 例如 values.note
        }
      });
    },
  },

6、获取表单内容,不做限制,单纯获取

methods: {
    handleSubmit(e) {
      e.preventDefault(); //阻止默认操作
      const values=this.form.getFieldsValue() //values是表单里面所有值的集合,使用方法 例如 values.note
    },
  },

7、清空表单

this.form.resetFields();//在点击 清空或重置按钮时调用的函数中使用

8、修改表单内容

this.form.setFieldsValue({
    note:"大可爱"
})

9、默认内容 表单中默认的value值用 initialValue 设置

<a-form :form="form" :label-col="{ span: 5 }" :wrapper-col="{ span: 12 }" @submit="handleSubmit">
    <a-form-item label="Note">
      <a-input
        v-decorator="['note', //value名字 例如:v-model="note"
                         { rules: [
                            { required: true,// 是否必填 true必填 false不必填
                              message: 'Please input your note!' //触发限制时的提示
                             }
                           ] ,
                           initialValue:"3333" //默认value值
                          }
                     ]"
      />
    </a-form-item>
  </a-form>

antd vue表单使用注意点

1、表单基本元素及获取表单值

<a-form layout="inline" :form="form">
	<a-form-item label="姓名" >
		<a-input v-decorator="['name']" placeholder="请输入姓名"></a-input>
	</a-form-item>
	<a-button type="primary" html-type="submit" @click="submit">查询</a-button>
	</a-form-item>
</a-form>

<script>
	export default {
		data() {
          return {
            form: this.$form.createForm(this, { name: 'form name' }),
          },
		methods:{
            submit(){
            	console.log(this.form.getFieldsValue())
            }
        }
	}
</script>

1、使用this.$form.createForm(this, options)包装组件,便于之后查找组件

2、通过v-decorator或者getFieldDecorator和表单进行双向绑定

3、使用 getFieldsValue

getFieldValue setFieldsValue 等获取或设置表单值

2、表单元素添加默认值

<a-input v-decorator="['name',{initialValue: info.name}]" ></a-input>

通过v-decorator中的initialValue进行设置

3、Select选择器

在使用Select, 选项比较多, 通过输入来筛选选项需要设置showSearch为true,Select组件默认是按照筛选项的value来筛选的.,如果需要按照筛选项的显示的内容来筛选, 应该把optionFilterProp的值修改为children

 

4、向表单中额外注册不显示的表单项

错误方式:

 this.form.setFieldsValue({extF: 'test'})

报错如下:

[Antd] Warning: You cannot set a form field before rendering a field associated with the value.

正确方式:

this.form.getFieldDecorator('extF', {initialValue: 'test', preserve: true})

5、穿梭框获取target对应的title

let targetList= []
this.targetKeys.forEach(item => {
	let arr = this.list.filter(value => value.key == item)
		targetList= [...targetList, ...arr]
})
let titles = []
newArr.forEach(item => {
	titles.push(item.title)
})

6、Select选择器获取对应的label值

设置labelInValue值

这样的话,FormItem中设置initialValue时应如下设置:

initialValue:{key:formVals.itemId,label:formVals.itemName},

如果要清掉这种情况下的value值,请设置为undefined

this.form.setFieldsValue({dep: undefined})

7、Select选择器传递自定义参数

<a-select @change="value => handleChange(value, param)" >
 </a-select>

handleChange的value参数即为默认参数,param为自定义参数

总结

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

相关文章

  • 在pycharm中开发vue的方法步骤

    在pycharm中开发vue的方法步骤

    这篇文章主要介绍了在pycharm中开发vue的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Vue.js构建你的第一个包并在NPM上发布的方法步骤

    Vue.js构建你的第一个包并在NPM上发布的方法步骤

    这篇文章主要介绍了Vue.js构建你的第一个包并在NPM上发布的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Vue Element前端应用开发之动态菜单和路由的关联处理

    Vue Element前端应用开发之动态菜单和路由的关联处理

    这篇文章主要介绍了Vue Element前端应用开发之动态菜单和路由的关联处理,对vue感兴趣的同学,可以参考下
    2021-05-05
  • vue使用一些外部插件及样式的配置代码

    vue使用一些外部插件及样式的配置代码

    这篇文章主要介绍了vue使用一些外部插件及样式的配置代码,本文分步骤实例图文相结合给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • 一篇文章带你使用Typescript封装一个Vue组件(简单易懂)

    一篇文章带你使用Typescript封装一个Vue组件(简单易懂)

    这篇文章主要介绍了使用Typescript封装一个Vue组件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • vue环形进度条组件实例应用

    vue环形进度条组件实例应用

    在本文中我们给大家分享了关于vue环形进度条组件的使用方法以及实例代码,需要的朋友们跟着测试下吧。
    2018-10-10
  • 又一款MVVM组件 构建自己的Vue组件(2)

    又一款MVVM组件 构建自己的Vue组件(2)

    这篇文章主要为大家分享了一款MVVM组件,构建自己的Vue组件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • element-ui如何防止重复提交的方法步骤

    element-ui如何防止重复提交的方法步骤

    这篇文章主要介绍了element-ui如何防止重复提交的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • vue使用wavesurfer.js解决音频可视化播放问题

    vue使用wavesurfer.js解决音频可视化播放问题

    Wavesurfer.js是一款基于HTML5 canvas和Web Audio的声纹可视化插件,功能十分强大,在Vue框架中嵌入使用该插件,今天重点给大家介绍下vue使用wavesurfer.js解决音频可视化播放问题,感兴趣的朋友一起看看吧
    2022-04-04
  • 详解jquery和vue对比

    详解jquery和vue对比

    这篇文章主要介绍了jquery和vue对比,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论