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>
验证两个账号是否重复
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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, } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
2016-01-18 三列等高布局
2016-01-18 两列布局实现方法