vue 中 表单数据为数组,v-for 循环表单数据
element-ui 中,表单数据一般为对象,但是也有是数组的情况,比如上面图示:账号和密码可以是多个,点击添加会增加一条,点击删除会删除一条
表单数据为
form:{
accounts:[
{
account: '',
password: ''
}
]
}
表单中代码
<el-form ref="form" :model="form" label-width="100px" label-suffix=":">
<el-row v-for="(item, index) in form.accounts" :key="index">
<el-col :span="11">
<el-form-item
label="系统账号"
:prop="`accounts.${index}.account`"
:rules="[
{required: true, message: '请输入系统账号', trigger: 'blur'},
{validator: checkAccount, trigger: 'blur'},
{min: 1, max: 16, message: '系统账号至多只能包含16个字符', trigger: 'blur'}
]"
>
<el-input
v-model="item.account"
placeholder="请输入系统账号"
clearable
autocomplete="off"
/>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item
label="账号密码"
:prop="`accounts.${index}.password`"
:rules="[
{required: true, message: '请输入账号密码', trigger: 'blur'},
{min: 1, max: 16, message: '账号密码至多只能包含16个字符', trigger: 'blur'}
]"
>
<el-input
v-model="item.password"
type="password"
placeholder="请输入账号密码"
clearable
autocomplete="new-password"
/>
</el-form-item> </el-col>
<el-col v-if="form.accounts.length >= 2" :span="2">
<div class="form-control-delete">
<el-button icon="el-icon-delete" circle class="btn-editDel" @click="deleteAccount(index)" />
</div>
</el-col>
</el-row>
<div class="form-control-add">
<el-button icon="el-icon-plus" class="btn-add" @click="addAccount">添加账号</el-button>
</div> </el-form>
验证两个账号是否重复
data() {
const checkAccount = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入系统账号'))
} else {
const len = this.form.accounts.length
if (len <= 1) {
callback()
} else {
const allAccount = this.form.accounts.map(v => v.account)
const len = allAccount.length
const filterAccount = allAccount.filter(v => v !== value)
if (len - 1 === filterAccount.length) {
callback()
} else {
callback(new Error('创建的系统账号不能重复!'))
}
}
}
} return {
checkAccount: checkAccount,
}
}
vue 中 表单数据为数组,v-for 循环表单数据的更多相关文章
- vue中过滤器比较两个数组取相同值
在vue中需要比较两个数组取相同值 一个大数组一个 小数组,小数组是大数组的一部分取相同ID的不同name值 有两种写法,两个for循环和map写法 const toName = (ids, arr) ...
- 【Vue】Vue中的父子组件通讯以及使用sync同步父子组件数据
前言: 之前写过一篇文章<在不同场景下Vue组件间的数据交流>,但现在来看,其中关于“父子组件通信”的介绍仍有诸多缺漏或者不当之处, 正好这几天学习了关于用sync修饰符做父子组件数据双向 ...
- 在vue中场景,循环行,点击当前行编辑数据
当前列表 点击编辑,行变为编辑框. <Row style="color:#999;margin-bottom:11px"> <Row style="ma ...
- vue中通过.sync修饰符实现子组件修改父组件数据
vue父子通讯是单向数据流,也就是子组件不能修改父组件的值,但是在一些情况下是需要这样做的. 先看官方文档: 接下来举例实现 1.实现一个双向数据绑定,子组件改变的时候,父组件也在改变 父组件 < ...
- vue中,基于echarts 地图实现一个人才回流的大数据展示效果
0.引入echarts组件,和中国地图js import eCharts from 'echarts' import 'echarts/map/js/china.js'// 引入中国地图 1. 设置地 ...
- VUE中让由全局变量添加生成的新数组不随全局变量的变化而变化
问题场景: const addOptions = { singleOrComplex, totalNum: this.smallTotalPrice, selectList: this.purchas ...
- vue中v-model详解
vue中经常使用到<input>和<textarea>这类表单元素,vue对于这些元素的数据绑定和我们以前经常用的jQuery有些区别.vue使用v-model实现这些标签数据 ...
- SpringMVC 接收表单数据、数据绑定、解决请求参数中文乱码
接收表单数据有3种方式. 1.使用简单类型接收表单数据(绑定简单数据类型) 表单: <form action="${pageContext.request.contextPath}/u ...
- VUE中父组件向子组件传递数据 props使用
VUE中,子组件是不能直接访问父组件的数据(一般来说,当然如果你要破坏原则也是可以),如下< <body> <div id="fathercomponent" ...
- JS中的唯一容器:数组
JS中的唯一容器:数组 一.什么类型的数据都可以存储 二. 定义的方式有两种 1 . var arra=[];var arra=[“a”,“b”,"c"]; 2.v ...
随机推荐
- Spring Boot整合JSP --CRUD
Springboot整合JSP spring boot与视图层次的整合: JSP 效率低 Thymeleaf java Server page 是Java提供的一种动态的网页技术,低层是Servlet ...
- ArcGIS Pro SDK 003 如何调用Toolbox
1.如何调用普通的Tool ArcGIS中的Toolbox非常强大,做二次开发的时候,必不可少的会调用,在ArcObjects SDK中,每个Tool都会有自定义的类对应,例如栅格转矢量数据,定义在E ...
- Excel操作技巧
命令 获取行号ROW(D2).COLOUM(D2) 快捷键 alt+=求和:alt+f1生成柱形图:alt+回车强制换行:alt+178输入平方:alt+179输入立方: shitf+大十字光标 换位 ...
- 理解JS函数之call,apply,bind
前言 在 JavaScript 中,apply.bind 和 call 是三个重要的函数,它们都是 Function.prototype 的方法.这些函数可以让我们动态地改变函数的 this 值,或者 ...
- gdbOF阅读笔记
前言 今天阅读了一本说明书,<gdbOF: A Debugging Tool for OpenFOAM> 受himryangzz视频启发去读相关内容,在此对himryangzz表示感谢 希 ...
- LeetCode-1220 统计元音字母序列的数目
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/count-vowels-permutation 题目描述 给你一个整数 n,请你帮忙统计一下我们 ...
- Django中多数据库的配置,实现分库分表,主从复制,读写分离
在django项目中, 一个工程中存在多个APP应用很常见. 有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接. 1. 修改项目的 settings 配置 在 settings. ...
- elasticsearch 安装与配置
一.JAVA 与 elasticsearch 的版本对应 个人实测能够对应起来的版本: elasticsearch-rtf-2.2.1 需要 JDK7 或更低的版本,推荐使用 7 elasticsea ...
- python + pyqt 实现的你下载css背景图片的小工具(最终版)
学习python有三个星期了,算是做的第一个小工具,其实也没必要做成图形界面,只是为的GUI学习(再说技术总归给人使用的,熟练很多shell命令只是个"匠人".) win8下面: ...
- Kmeans中文聚类
中文文本kmeans聚类原理:K就是将原始数据分为K类,Means即均值点.K-Means的核心就是将一堆数据聚集为K个簇,每个簇中都有一个中心点称为均值点,簇中所有点到该簇的均值点的距离都较到其他簇 ...