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

一、a-form

组件使用

html 复制代码
    <a-form
      :form="form"
      layout="vertical"
      :label-col="{span: 6}"
      :wrapper-col="{span: 17,offset:1}"
    ></a-form>

绑定数据

html 复制代码
<a-form-item :label="$t('m.equipment') + 'ID'">
            <!-- v-decorator="[
                  'deviceId',
                  {
                    rules: [{ required: false, message: $t('m.PleaseEnter') + $t('m.deviceId') }],
                  },
            ]"-->
            <a-input
              v-model="queryParam.deviceId"
              :placeholder=" $t('m.PleaseEnter') + $t('m.deviceId')"
            />
          </a-form-item>

定义form

javascript 复制代码
form: this.$form.createForm(this),

提交数据,表单验证

javascript 复制代码
      this.form.validateFields((err, values) => {
        if (!err) {
  
        }
      })

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

javascript 复制代码
        this.form.resetFields()
          this.form.setFieldsValue()
          this.form.setFieldsValue({
            name: this.data.name,
            age: this.data.age
          })
         

获取表单内容

javascript 复制代码
this.form.getFieldsValue();
this.form.getFieldValue('name')

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

javascript 复制代码
 this.form.resetFields()
          this.model = Object.assign({}, this.record)
          this.$nextTick(() => {
            this.form.setFieldsValue(pick(this.model, ',name', 'age'))
          })

有的时候可能会报错:

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


二、a-form-model

组件使用

javascript 复制代码
          <a-form-model ref="ruleForm" :model="form" :rules="rules" :layout="form.layout">
            <a-form-model-item :label="$t('m.electronicFence') + $t('m.name')" prop="name">
              <a-input v-model="form.name" :placeholder="$t('m.electronicFence') + $t('m.name')" />
            </a-form-model-item>
            <a-form-model-item :label="$t('m.yaddress') + $t('m.search')" prop="address">
              <input
                style="height:15px"
                v-model="form.address"
                id="tipinput"
                :placeholder="$t('m.electronicFence') + $t('m.yaddress')"
              />
            </a-form-model-item>
            <a-form-model-item>
              <a-button @click="openPloy()" style="margin-bottom: 5px;margin-left:20px">编辑当前区域</a-button>
              <a-button style="margin-left:20px" @click="delArea()">删除当前区域</a-button>
            </a-form-model-item>
          </a-form-model>

data:

javascript 复制代码
      form: {
        name: '',
        address: undefined,
        layout: 'inline'
      },
      rules: {
        name: [{ required: true, message: `请输入电子围栏名称`, trigger: 'blur' }],
        address: [{ required: true, message: `请选择地址`, trigger: 'blur' }]
      },
      labelCol: { span: 4 },
      wrapperCol: { span: 14 },

提交

javascript 复制代码
onSubmit() {
      this.$refs.ruleForm.validate(valid => {
        if (valid) {
          alert('submit!');
        } else {
          console.log('error submit!!');
          return false;
        }
      });
    },

重置

javascript 复制代码
    resetForm() {
      this.$refs.ruleForm.resetFields();
    },

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


发表一下个人看法

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

相关推荐
亿牛云爬虫专家7 分钟前
Puppeteer教程:使用CSS选择器点击和爬取动态数据
javascript·css·爬虫·爬虫代理·puppeteer·代理ip
2401_8576100319 分钟前
深入探索React合成事件(SyntheticEvent):跨浏览器的事件处理利器
前端·javascript·react.js
_xaboy21 分钟前
开源项目低代码表单设计器FcDesigner扩展自定义的容器组件.例如col
vue.js·低代码·开源·动态表单·formcreate·低代码表单·可视化表单设计器
_xaboy22 分钟前
开源项目低代码表单设计器FcDesigner扩展自定义组件
vue.js·低代码·开源·动态表单·formcreate·可视化表单设计器
雾散声声慢31 分钟前
前端开发中怎么把链接转为二维码并展示?
前端
熊的猫31 分钟前
DOM 规范 — MutationObserver 接口
前端·javascript·chrome·webpack·前端框架·node.js·ecmascript
天农学子32 分钟前
Easyui ComboBox 数据加载完成之后过滤数据
前端·javascript·easyui
mez_Blog32 分钟前
Vue之插槽(slot)
前端·javascript·vue.js·前端框架·插槽
爱睡D小猪35 分钟前
vue文本高亮处理
前端·javascript·vue.js
paopaokaka_luck36 分钟前
基于Spring Boot+Vue的多媒体素材管理系统的设计与实现
java·数据库·vue.js·spring boot·后端·算法