Vue3+antDesignVue实现表单校验

这篇具有很好参考价值的文章主要介绍了Vue3+antDesignVue实现表单校验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

<a-form
      ref="form"
      :model="form"
      :rules="rules"
      :label-col="{ md: { span: 6 }, sm: { span: 24 } }"
      :wrapper-col="{ md: { span: 18 }, sm: { span: 24 } }"
    >
      <!--      <a-form-item label='创建人:' name='createdBy'>-->
      <!--        <a-input-number v-model:value='form.createdBy' placeholder='请输入创建人' allow-clear autocomplete='off' style="width: 100%" />-->
      <!--      </a-form-item>-->

      <a-form-item label="项目编号:" name="projectCode">
        <a-input v-model:value="form.projectCode" placeholder="请输入项目编号" style="width: 50%" allow-clear autocomplete="off" />
      </a-form-item>
      <a-form-item label="项目名称:" name="projectName">
        <a-input v-model:value="form.projectName" placeholder="请输入项目名称" style="width: 50%" allow-clear autocomplete="off" />
      </a-form-item>
      <a-form-item label="项目承担单位:" name="company">
        <a-input v-model:value="form.company" placeholder="请输入项目承担单位" style="width: 50%" allow-clear autocomplete="off" />
      </a-form-item>
      <a-form-item label="项目目的和意义:" name="purpose">
        <a-textarea v-model:value="form.purpose" placeholder="请输入项目目的和意义" style="width: 50%" allow-clear autocomplete="off" />
      </a-form-item>
      <a-form-item label="技术水平:" name="level">
        <a-select
          ref="select"
          v-model:value="form.level"
          style="width: 40%"
          placeholder="请选择技术水平"
          @focus="focus"
          @change="handleChange"
        >
          <a-select-option value="国际先进">国际先进</a-select-option>
          <a-select-option value="国际领先">国际领先</a-select-option>
          <a-select-option value="国内先进">国内先进</a-select-option>
          <a-select-option value="国内领先">国内领先</a-select-option>
        </a-select>
      </a-form-item>
      <a-form-item label="项目类型:" name="projectType">
        <a-select
          ref="select"
          v-model:value="form.projectType"
          placeholder="请选择项目类型"
          style="width: 40%"
          @focus="focus"
          @change="handleChange"
        >
          <a-select-option value="产学研合作">产学研合作</a-select-option>
          <a-select-option value="自主研发">自主研发</a-select-option>
          <a-select-option value="其他">其他</a-select-option>
        </a-select>
      </a-form-item>
      <a-form-item label="项目主要内容:" name="content">
        <a-textarea v-model:value="form.content" placeholder="请输入项目主要内容" style="width: 50%" allow-clear autocomplete="off" />
      </a-form-item>
      <a-form-item label="项目前期准备工作、调研计划:" name="plan">
        <a-textarea
          v-model:value="form.plan"
          placeholder="请输入项目前期准备工作、调研计划"
          style="width: 50%"
          allow-clear
          autocomplete="off"
        />
      </a-form-item>
      <a-form-item label="项目预计科技投入总额:" name="investment">
        <a-input-number
          v-model:value="form.investment"
          placeholder="请输入项目预计科技投入总额"
          style="width: 50%"
          allow-clear
          autocomplete="off"
          addon-before="RMB"
          addon-after="万元"
        />
      </a-form-item>
      <a-form-item label="前期准备工作进展、项目调研进展:" name="progress">
        <a-textarea
          v-model:value="form.progress"
          placeholder="请输入前期准备工作进展、项目调研进展"
          style="width: 50%"
          allow-clear
          autocomplete="off"
        />
      </a-form-item>
      <a-form-item label="已累计投入总额:" name="spent">
        <a-input-number
          v-model:value="form.spent"
          placeholder="请输入已累计投入总额"
          style="width: 50%"
          allow-clear
          autocomplete="off"
          addon-before="RMB"
          addon-after="万元"
        />
      </a-form-item>
      <a-form-item label="项目调研报告(或总结):" name="report">
        <a-upload
          name="file"
          ref="uploadRef"
          class="upload-list"
          v-model:file-list="fileList"
          :multiple="false"
          :action="FileUploadUrl"
          :headers="headers"
          :before-upload="beforeUpload"
          :custom-request="customRequest"
          @change="handleChange"
          @remove="handleRemove"
        >
          <a-button v-if="fileList.length < 1">
            <template #icon>
              <CloudUploadOutlined />
            </template>
            <span>选择文件</span>
          </a-button>
        </a-upload>
      </a-form-item>
    </a-form>

 data() {
    return {
      fileList: [],

      // 表单数据
      form: Object.assign({}, this.data),
      // 表单验证规则
      rules: {
        createdBy: [{ required: true, message: '请输入创建人', type: 'number', trigger: 'blur' }],
        projectName: [{ required: true, message: '请输入项目名称', type: 'string', trigger: 'blur' }],
        company: [{ required: true, message: '请输入项目承担单位', type: 'string', trigger: 'blur' }],
        purpose: [{ required: true, message: '请输入项目目的和意义', type: 'string', trigger: 'blur' }],
        level: [{ required: true, message: '请输入技术水平', type: 'string', trigger: 'blur' }],
        projectType: [{ required: true, message: '请输入项目类型', type: 'string', trigger: 'blur' }],
        content: [{ required: true, message: '请输入项目主要内容', type: 'string', trigger: 'blur' }],
        plan: [{ required: true, message: '请输入项目前期准备工作、调研计划', type: 'string', trigger: 'blur' }],
        investment: [{ required: true, message: '请输入项目预计科技投入总额', type: 'number', trigger: 'blur' }],
        postTime: [{ required: true, message: '请输入', type: 'string', trigger: 'blur' }],
        status: [{ required: true, message: '请输入', type: 'string', trigger: 'blur' }],
        progress: [{ required: true, message: '请输入前期准备工作进展、项目调研进展', type: 'string', trigger: 'blur' }],
        report: [{ required: true, message: '请输入项目调研报告(或总结)', type: 'change', trigger: 'blur' }],
        projectCode: [{ required: true, message: '请输入项目编号', type: 'string', trigger: 'blur' }],
        spent: [{ required: true, message: '请输入已累计投入总额', type: 'number', trigger: 'blur' }]
      },
      // 提交状态
      loading: false,
      headers: {
        Authorization: getToken()
      },
      // 是否是修改
      isUpdate: false
    };
  },

文章来源地址https://www.toymoban.com/news/detail-794084.html

到了这里,关于Vue3+antDesignVue实现表单校验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3+ant design的form数组表单,如何校验

    首先,先说说我要实现的内容:如下图,点“新增”会添加一个灰框内容,form表单是一个数组,一个灰框为一个对象,各对象保存时各自校验自己表单里的内容,互不干扰!   上页面代码(看部分代码就懂了): 2023.11.1月添加补充:当定义rules,用v-bind方法绑定,校验不生

    2024年02月08日
    浏览(44)
  • 基于VUE3+Layui从头搭建通用后台管理系统(前端篇)十一:通用表单组件封装实现

      本章实现通用表单组件,根据实体配置识别实体属性,并自动生成编辑组件,实现对应数据填充、校验及保存等逻辑。 1. 详细课程地址: https://edu.csdn.net/course/detail/38183 2. 源码下载地址: 点击下载

    2024年02月10日
    浏览(51)
  • vue3 antd项目实战——Form表单的提交与校验【v-model双向绑定input输入框、form表单数据,动态校验规则】

    本文依旧沿用 ant design vue 组件库和 ts 语言🔥🔥更多内容见Ant Design Vue官方文档 🔥🔥 vue3 antd项目实战——Form表单【后台管理系统 v-model数据的双向绑定,input输入框、Radio单选框的嵌套使用】 在上期文章中,我们完成了 UI界面的渲染 (渲染效果如下图),本期文章将带着大

    2023年04月22日
    浏览(84)
  • 使用ElEment组件实现vue表单校验空值

    1.绑定表单组件数组rules 2.在data域中设定组件rules 3.设定调用方法函数 提交校验 取消: 测试页面 提交空值 失去焦点 取消重置 提交后重置

    2024年01月24日
    浏览(41)
  • vue实现多个el-form表单提交统一校验

    通过以下两种方法实现多个表单的统一校验: 1. 定义模板内容 在 el-form 表单中添加 ref 属性来获取表单组件对象 2. 方法一 在上述代码中,我们给每个 el-form 表单添加了 ref 属性,分别为 form1 和 form2,在 submit 方法中,分别对两个表单使用 validate 方法进行表单校验 3. 方法二

    2024年02月13日
    浏览(44)
  • vue3中,form表单校验之特殊字符校验、手机号、身份证号、百分制数字 & route和router的写法 & setup的两种用法 & rules中校验之blur和change

    vue3中,form表单校验之特殊字符校验、手机号、身份证号、百分制数字 route和router的写法 setup的两种用法 rules中校验之blur和change 1、写法一 index.vue 2、写法二完整版 index.vue 2、校验文件 srcutilsvalidate.ts

    2024年02月05日
    浏览(42)
  • 前端技术Html,Css,JavaScript,Vue3

    1.基本标签 2.文本格式化 3.链接 4.图片 5.无序列表 6.有序列表 7.表格 8.表单 1.选择器 2.文本和字体 3.链接 4.隐藏 5.定位position 6.浮动 7.对齐 8.图像 1.输出 2.函数 3.常用事件 4.DOM 5.改变Html 6.DOM 元素 (节点) 尾部创建新的 HTML 元素 (节点) - appendChild() 头部创建新的 HTML 元素 (节点)

    2024年02月13日
    浏览(51)
  • vue3 +element动态表单实现

    可以直接复制,接口看后端 父页面 子页面

    2024年02月15日
    浏览(36)
  • Vue3 element-plus表单嵌套表格实现动态表单验证

    部分效果图如下: 另表格有添加和删除按钮,点击提交进行表单验证。 首先data格式必须是对象包裹数组 给表单绑定form数据 表格绑定tableData数据 给表单项增加验证规则 rules对应data rules对象,prop对应表单字段(注意是表格里每一行对应的字段 forms.tableData[下标].key) prop的关

    2024年02月14日
    浏览(41)
  • el-form前端表单校验步骤详细

    (1),Form组件提供了表单验证的功能,只需要通过rules属性传入约定的验证规则,并将Form-Item的prop属性设置为需校验的字段名即可。 (2),data-return里面加上formData,在这里写上限定条件,通过rules属性传入约定的验证规则 (3),提交验证 例子:

    2024年02月16日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包