赞
踩
先看效果图:
表单代码展示:
<template> <div> <el-form v-for="ruleForm in ruleForm" :key="ruleForm" :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> <el-row> <el-col :span="12"> <el-form-item label="姓名" prop="name"> <el-input v-model="ruleForm.name"></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="性别" prop="sex"> <el-input v-model="ruleForm.sex"></el-input> </el-form-item> </el-col> </el-row> <el-form-item label="备注" prop="memo"> <el-input v-model="ruleForm.memo"></el-input> </el-form-item> <el-divider></el-divider> </el-form> <el-form> <el-form-item label-width="100px"> <el-button type="primary" @click="submitFormAdd()">保存并关闭</el-button> <el-button @click="resetForm()">重置</el-button> <el-button @click="add">+</el-button> <el-button @click="reduce" :disabled="flag">-</el-button> </el-form-item> </el-form> </div> </template>
在data初始化表单, flag是控制如果只有一个表单的时候删除表单按钮为禁用状态
data() {
return {
// 表单
ruleForm: [
{
name: '',
sex: '',
memo: ''
}
],
flag: true
}
}
methods中的方法:
methods{ // 表单添加一行 add() { var arr = { name: '', sex: '', memo: '' } this.ruleForm.push(arr) this.flags() }, // 表单减少一行 reduce() { this.ruleForm.length = this.ruleForm.length - 1 this.flags() }, // 判断数组长度 flags() { if (this.ruleForm.length < 2) { this.flag = true } else { //先赋值为true再赋为false, 不然会没反应 this.flag = true this.flag = false } }, // 重置方法 resetForm() { this.ruleForm = [{}] } }
每次点击+按钮, 就会添加一个表单进去, 点击-按钮就会将数组的长度-1, 当数组长度小于2的时候, 就将-按钮禁用, 至此, 一个动态表单就完成实现了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。