美文网首页
关于vue v-decorator

关于vue v-decorator

作者: one_mybe | 来源:发表于2020-08-25 15:04 被阅读0次

ant-desigin-vue中form表单的使用

form表单的使用

form表单之获取表单的数据

创建表单

  • 通过ant-design-vue去获取表单的数据是使用v-decorator的方式去给每个项去注册,这样才能通过组件去拉取表单的数据,同时对必填项做校验;
<template>
  <a-form @submit="handleOk" :form="form">
    // :form="form" 必须优先注册
    <!-- 客户姓名 -->
    <a-form-item
        :labelCol="labelCol" // 排列样式
        :wrapperCol="wrapperCol"
        label='客户姓名:'
      >
      <a-input
        v-decorator="[
          'name', // 给表单赋值或拉取表单时,该input对应的key
          {rules: [{ required: true, message: '请输入客户名称!' }]}
        ]"
        placeholder="请输入客户名称"/>
    </a-form-item>
  </a-form>
</template>

export default {
  data() {
    return {
      form: this.$form.createForm(this), // 只有这样注册后,才能通过表单拉取数据
    }
  }
}

拉取表单数据的方法

  • 通过validateFields的方法,能够校验必填项是否有值,若无,则页面会给出警告!
this.form.validateFields((err, values) => {
  if (err) {
    // 这里做逻辑处理
    console.log(values) // { name: '' }
  }
}

清空表单的方法

  • 执行this.form.resetFields(),则会将表单清空。

给表单赋值

  • 值得一提的是,setFieldsValue只有通过这种方式给表单赋值,拉取表单的时候才能拉取到值,其他设置默认值的方式,拉取表单时都无法获取到默认值。
 this.form.setFieldsValue({
   name: '设置值'
 })

给表单中添加自定义校验

  • 现在给表单添加自定义校验的方式,是从你开始输入时就在校验,讨厌的警告一直存在,直到你输入完整才会消失,个人觉得这种方式不太友好!
<a-form-item
  v-bind="formItemLayout"
  label="E-mail"
>
  <a-input
    v-decorator="[
      'email',
      {
        rules: [{
          type: 'email', message: 'The input is not valid E-mail!',
        }, {
          required: true, message: 'Please input your E-mail!',
        }]
      }
    ]"
  />
</a-form-item>

  • 推荐使用下面的方式做自定义校验,当输入框失去焦点后再去校验是否正确
  • 这种方法的思路是,
    • 当输入框失去焦点时,校验是否为空同时是否匹配正则
    • 给该单个输入框设置错误信息,并在页面给出警告。
<a-form-item
  :labelCol="labelCol"
  :wrapperCol="wrapperCol"
  label='手机:'
>
<a-input
  type="number"
  v-decorator="[
    'phone',
    {
      rules: [
        { required: false, message: '请输入手机号码!' },]
    },
  ]"
  @blur="validatePhoneBlur"
  placeholder='请输入手机号码' />
</a-form-item>

// 校验事件
validatePhoneBlur(e) {
  const validatePhoneReg = /^1\d{10}$/
  if (e.target.value && !validatePhoneReg.test(e.target.value)) {
    const arr = [{
      message: '您输入的手机格式不正确!',
      field: 'phone',
    }]
    this.form.setFields({ phone: { value: e.target.value, errors: arr } })
  }
},

</article>

相关文章

  • 关于vue v-decorator

    ant-desigin-vue中form表单的使用 form表单的使用 form表单之获取表单的数据 创建表单 通...

  • 第二十九节:Vue Cli: Vue脚手架

    前言:关于Vue CLI版本介绍 关于旧版本Vue CLI 的包名称由 vue-cli 改成了 @vue/cli。...

  • Vue(篇幅三)

    关于如何学习Vue,Vue的缔造者尤雨溪前辈曾经在知乎发表过一篇新手向:Vue 2.0 的建议学习顺序。关于Vue...

  • Vue(篇幅四)

    关于如何学习Vue,Vue的缔造者尤雨溪前辈曾经在知乎发表过一篇新手向:Vue 2.0 的建议学习顺序。关于Vue...

  • Vue(篇幅二)

    关于如何学习Vue,Vue的缔造者尤雨溪前辈曾经在知乎发表过一篇新手向:Vue 2.0 的建议学习顺序。关于Vue...

  • vue-cli从2.9.6升级到3.0

    把原先的卸载后再重新安装,关于Vue CLI 3 关于旧版本 Vue CLI 的包名称由 vue-cli 改成了 ...

  • vue cli3项目搭建流程

    一、关于vue cli3和vue cli2 以及vue2.x vue3.x vue cli是安装vue的脚手架工具...

  • Vue CLI安装

    Vue CLI 安装 关于旧版本 Vue CLI 的包名称由 vue-cli 改成了 @vue/cli。 如果你已...

  • vue-学习笔记

    关于vue cli 全局安装vue cli命令:npm install -g @vue/cli 创建新项目命令:v...

  • 关于vue-router的基本使用方法

    关于vue-router的基本使用方法 首先,需要下载vue-routernpm install vue-rout...

网友评论

      本文标题:关于vue v-decorator

      本文链接:https://www.haomeiwen.com/subject/uyhzjktx.html