el-form动态嵌套表单验证

news/2024/12/23 8:03:08/

v-for 遍历的表单校验

根据官网的介绍,是在 el-form-item 中使用 :rules 属性,同时 prop 属性直接定位到具体循环元素。这个用法的前提是在循环外面包裹一个 el-form 元素,v-for 位于 el-form-item 中。

<template><el-form:model="dynamicValidateForm"ref="dynamicValidateForm"label-width="100px"class="demo-dynamic"><el-form-itemprop="email"label="邮箱":rules="[{ required: true, message: '请输入邮箱地址', trigger: 'blur' },{type: 'email',message: '请输入正确的邮箱地址',trigger: ['blur', 'change'],},]"><el-input v-model="dynamicValidateForm.email"></el-input></el-form-item><template v-for="(domain, index) in dynamicValidateForm.domains"><el-form-item:label="domain.name + index":key="domain.key":prop="'domains.' + index + '.value'":rules="{required: true,message: domain.name + '不能为空',trigger: 'blur',}"><el-input v-model="domain.value"></el-input></el-form-item><el-form-itemv-for="(items, indexs) in domain.children":key="items.key":label="items.name + indexs":prop="'domains.' + index + '.children.' + indexs + '.value'":rules="{required: true,message: items.name + '不能为空',trigger: 'blur',}"><el-input v-model="domain.value"></el-input></el-form-item></template><el-form-item><el-button type="primary" @click="submitForm('dynamicValidateForm')">提交</el-button><el-button @click="addDomain">新增域名</el-button></el-form-item></el-form>
</template><script>
export default {data () {return {dynamicValidateForm: {domains: [{ name: '姓名', value: "", key: 1 },{ name: '家庭', value: "", key: 2, children: [{ name: '爸爸', value: "", key: 11 }, { name: '妈妈', value: "", key: 22 }] },]}}},methods: {addDomain () {},submitForm (formName) {this.$refs[formName].validate((valid) => {if (valid) {alert('submit!');} else {console.log('error submit!!');return false;}});},},mounted () {}
}
</script><style>
</style>

位于循环中的 el-form-item ,为 el-form-item 设置 :rules 属性,同时设置它的 prop 属性需要遵循的规则为:

   prop=循环对象.下标.子属性

运行效果:

 

 


http://www.ppmy.cn/news/711954.html

相关文章

css基础知识十六:如何实现单行/多行文本溢出的省略样式?

一、前言 在日常开发展示页面&#xff0c;如果一段文本的数量过长&#xff0c;受制于元素宽度的因素&#xff0c;有可能不能完全显示&#xff0c;为了提高用户的使用体验&#xff0c;这个时候就需要我们把溢出的文本显示成省略号 对于文本的溢出&#xff0c;我们可以分成两种…

判断是否是iphoneX手机

util.isIPhoneX function () { var u navigator.userAgent; var isIOS !!u.match(/\(i[^;];( U;)? CPU.Mac OS X/); //ios终端 if (isIOS) { if (screen.height 812 && screen.width 375) { return true; } else { return false; } } }

js判断iphoneX系列

export function isIphonex() { // 判断是不是X类型手机// X XS, XS Max, XR&#xff0c;11&#xff0c; 11pro&#xff0c;11pro max&#xff0c;12mini&#xff0c;12&#xff0c; 12 pro&#xff0c;12 pro maxconst xSeriesConfig [{devicePixelRatio: 3,width: 375,heigh…

适配iPhoneX和Xcode9

iPhone X的适配 1、iPhone X&#xff0c; 5.8 英寸,屏幕分辨率为 1242 x 2800 除去底部固定的功能区&#xff0c;屏幕显示范围的尺寸为 5.15 英寸&#xff0c;458ppi。 竖屏尺寸&#xff1a;1125px 2436px(375pt 812pt 3x) 横屏尺寸&#xff1a;2436px 1125px(812pt 375pt …

iOS iPhoneX 适配

问题一&#xff1a;适配 1.首先简单定义一下IPoneX #define ISIPHONEX (ScreenHeight 812.0f) ? YES : NO 2.简单了解下IPhoneX 导航栏 状态栏 tabar高度 1.导航栏高度 88 非非IPoneX手机为64 2.状态栏高度44 非IPoneX手机为20 3.tabar高度83 非IPhoneX手机为49 如下图所示&…

适配处理iphoneX底部的横条

iphoneX手机取消了实体Home键&#xff0c;取而代之的是主界面底部不显眼的横条“Home Indicator”。当网页底部fixed 元素时候&#xff0c;一部分元素可能就被这个横条遮挡住&#xff0c;怎么适配解决呢&#xff1f; 第一步&#xff1a; <meta name“viewport” content“w…

cocos2dx游戏之适配iPhoneX屏幕

最近项目中有关于做iPhoneX屏幕适配问题&#xff0c;关键是这个项目已经做的差不多了&#xff0c;唯独iPhoneX屏幕没有适配&#xff0c;然后这个适配任务就落到我身上了&#xff0c;好了&#xff0c;话不多说&#xff0c;开始记录。。。 开始搞时在网上也查看了很多资料&#x…

iOS11适配iPhoneX总结

屏幕尺寸相关变化 高度增加了145pt&#xff0c;变成812pt. 状态栏高度由20pt变成44pt&#xff0c;留意这个距离就能避开“刘海”的尴尬&#xff0c;相应的导航栏以上变化64->88。 底部工具栏需要为home indicator留出34pt边距。 物理分辨率为1125px * 2436px. 启动图的适配…