当前位置:   article > 正文

ant a-form/a-form-model用法(组件使用、表单验证、数据收集、数据重置、数据提交)

a-form

一、a-form

 组件使用

  1. <a-form
  2. :form="form"
  3. layout="vertical"
  4. :label-col="{span: 6}"
  5. :wrapper-col="{span: 17,offset:1}"
  6. ></a-form>

 绑定数据

  1. <a-form-item :label="$t('m.equipment') + 'ID'">
  2. <!-- v-decorator="[
  3. 'deviceId',
  4. {
  5. rules: [{ required: false, message: $t('m.PleaseEnter') + $t('m.deviceId') }],
  6. },
  7. ]"-->
  8. <a-input
  9. v-model="queryParam.deviceId"
  10. :placeholder=" $t('m.PleaseEnter') + $t('m.deviceId')"
  11. />
  12. </a-form-item>

 定义form

form: this.$form.createForm(this),

提交数据,表单验证

  1. this.form.validateFields((err, values) => {
  2. if (!err) {
  3. }
  4. })

 打开表单时,内容重置 / 单个设置表单内容

  1. this.form.resetFields()
  2. this.form.setFieldsValue()
  3. this.form.setFieldsValue({
  4. name: this.data.name,
  5. age: this.data.age
  6. })

 获取表单内容

  1. this.form.getFieldsValue();
  2. this.form.getFieldValue('name')

打开表单后,将整条数据对应填写到表单

  1. this.form.resetFields()
  2. this.model = Object.assign({}, this.record)
  3. this.$nextTick(() => {
  4. this.form.setFieldsValue(pick(this.model, ',name', 'age'))
  5. })

有的时候可能会报错:

报错的话加一下this.$nextTick(()=>{}) 


二、a-form-model

组件使用

  1. <a-form-model ref="ruleForm" :model="form" :rules="rules" :layout="form.layout">
  2. <a-form-model-item :label="$t('m.electronicFence') + $t('m.name')" prop="name">
  3. <a-input v-model="form.name" :placeholder="$t('m.electronicFence') + $t('m.name')" />
  4. </a-form-model-item>
  5. <a-form-model-item :label="$t('m.yaddress') + $t('m.search')" prop="address">
  6. <input
  7. style="height:15px"
  8. v-model="form.address"
  9. id="tipinput"
  10. :placeholder="$t('m.electronicFence') + $t('m.yaddress')"
  11. />
  12. </a-form-model-item>
  13. <a-form-model-item>
  14. <a-button @click="openPloy()" style="margin-bottom: 5px;margin-left:20px">编辑当前区域</a-button>
  15. <a-button style="margin-left:20px" @click="delArea()">删除当前区域</a-button>
  16. </a-form-model-item>
  17. </a-form-model>

data:

  1. form: {
  2. name: '',
  3. address: undefined,
  4. layout: 'inline'
  5. },
  6. rules: {
  7. name: [{ required: true, message: `请输入电子围栏名称`, trigger: 'blur' }],
  8. address: [{ required: true, message: `请选择地址`, trigger: 'blur' }]
  9. },
  10. labelCol: { span: 4 },
  11. wrapperCol: { span: 14 },

提交

  1. onSubmit() {
  2. this.$refs.ruleForm.validate(valid => {
  3. if (valid) {
  4. alert('submit!');
  5. } else {
  6. console.log('error submit!!');
  7. return false;
  8. }
  9. });
  10. },

重置

  1. resetForm() {
  2. this.$refs.ruleForm.resetFields();
  3. },

 至于修改、获取form中绑定的值,直接this.form就好了


发表一下个人看法

本人认为第二种方法比第一种简单的多,使用也很方便。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/91502
推荐阅读
相关标签
  

闽ICP备14008679号