当前位置: 首页 > news >正文

Vue 按键生成多个表单

本文通过 vue+ele,通过循环ref的方法生成多个表单,代码如下:

<template><div><el-button @click="addText" style="margin:  15px 0; ">添加字段</el-button><div v-for="item, index in dataList"><el-button @click="deleteText" type="danger" v-if="index == dataList.length - 1"style="margin-bottom: 15px;">删除字段</el-button><el-form :ref="`form${index}`" :model="item" :rules="rules" :key="index" label-width="80px"><el-form-item label="中文名称" prop="chineseName"><el-input v-model="item.chineseName"></el-input></el-form-item><el-form-item label="英文名称" prop="englishName"><el-input v-model="item.englishName"></el-input></el-form-item></el-form></div><el-button v-if="dataList.length != 0" @click="submitForms" style="margin:  15px 0; ">提交</el-button></div>
</template>
<script>export default {name: 'addForm',components: {},data() {return {dataList: [],rules: {chineseName: [{ required: true, message: "请输入英文名称", trigger: "blur" },{ pattern: /^[\u4e00-\u9fa5]+$/, message: "只能输入中文", trigger: "blur" }],englishName: [{ required: true, message: "请输入英文名称", trigger: "blur" },{ pattern: /^[a-zA-Z]+$/, message: "只能输入英文", trigger: "blur" }],},}},props: {},created() {},watch: {},computed: {},mounted() {},methods: {addText() {this.dataList.push({ chineseName: '', englishName: '' });},deleteText() {this.dataList.pop();},submitForms() {const formDataArray = [];let valid = true;this.dataList.forEach((item, index) => {this.$refs[`form${index}`][0].validate((validForm) => {if (!validForm) {valid = false;}});formDataArray.push(this.$refs[`form${index}`][0].model);});if (valid) {console.log(formDataArray);// 在这里处理提交的表单数据} else {console.log('表单验证失败');}}},beforeDestroy() {}
}
</script>
<style scoped></style>

效果如图:

完整代码已经上传github:https://github.com/majinihao123/vue-Component

在线地址:https://majinihao123.github.io/vue-Component/dist/#/addForm

有需要的自取,麻烦给git一个星星!!!


http://www.mrgr.cn/news/82884.html

相关文章:

  • 【养生--果蔬汁】
  • 【阅读】认知觉醒
  • doris:远程存储
  • 0基础学前端-----CSS DAY12
  • flink cdc oceanbase(binlog模式)
  • java.lang.Error: FFmpegKit failed to start on brand:
  • 【C语言程序设计——入门】基本数据类型与表达式(头歌实践教学平台习题)【合集】
  • 现代密码学期末重点(备考ing)
  • 常见加密算法附JAVA代码案例
  • 【Javascript Day1】javascript基础
  • 《数据结构》期末考试测试题【中】
  • 最好用的图文识别OCR -- PaddleOCR(1) 快速集成
  • 信息科技伦理与道德2:研究方法
  • 安卓cpu调度优化
  • 【C语言程序设计——选择结构程序设计】求一元二次方程的根(头歌实践教学平台习题)【合集】
  • 【C++面向对象——继承与派生】派生类的应用(头歌实践教学平台习题)【合集】
  • 25年01月HarmonyOS应用基础认证最新题库
  • 【C++数据结构——树】二叉树的遍历算法(头歌教学实验平台习题) 【合集】
  • docker 基本使用
  • 排序算法的实现(插入,希尔,选择,冒泡,堆排,快排)
  • 分布式ID生成-雪花算法实现无状态
  • 【C++数据结构——图】最小生成树(头歌实践教学平台习题) 【合集】
  • Kafka集群安装
  • 【C++面向对象——类的多态性与虚函数】编写教学游戏:认识动物(头歌实践教学平台习题)【合集】
  • 【Vue.js 组件化】高效组件管理与自动化实践指南
  • oracle jdk17新版变回OTN 商用收费了