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,
}
}

  

最新文章

  1. Diagramming for WinForms 教程一(读取图元数据)
  2. yii框架常用url地址
  3. POC
  4. Xposed知识
  5. android与javascript相互调用
  6. SQL一次查出相关类容避免长时间占用表(上)
  7. 关于Android log拿不到的情况
  8. windows----------如何禁用PC端微信的开机启动
  9. MGR架构~ 整体性能架构的调优
  10. adb命令使用总结
  11. P4980 【模板】Polya定理
  12. 51nod-1181-两次筛法
  13. C#操作Mongo进行数据读写
  14. 自动安装zabbix_agent脚本 -- python2
  15. Kaldi 安装
  16. 使用c:forEach 控制5个换行
  17. (转)学习linux的几本书
  18. 【转】Angular.js VS. Ember.js:谁将成为Web开发的新宠?
  19. BZOJ 2337 XOR和路径(概率DP)
  20. ECMAScript6入门-序言

热门文章

  1. iview表单验证
  2. 代码随想录算法训练营day17 | leetcode ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和
  3. Vue 计算属性与普通的函数有什么区别?
  4. 仿 MVC 三大特性
  5. Day 23 23.2:逆向前期准备
  6. mysql 服务安装与配置
  7. [Maven] 引入依赖以后如果标红怎么办
  8. libuv 网络库设计概览译
  9. scrapy 爬取酷狗热门歌手音乐
  10. calico 关闭SNAT