蝙蝠岛资源网 Design By www.hbtsch.com
前言
本篇文章基于 vue、element-ui
需求
前端开发过程中,经常遇到表单开发的需求,element-ui 为我们带来了极大的便利,前端只需要更专注于前端逻辑。
我们往往会遇到相对复杂的表单,比如下面的表单:
我们设计的时候可以把它设计成 3 级表单,即划分表单到每一个校验项(输入框,下拉框的等)
最终实现效果如下图所示:
实现
el-form 使用,详情可参见: Form 表单
有几个比较重要的属性:
- ref 相当于标签的 id
- model 表单数据对象
- rules 表单验证规则
- prop 表单域 model 字段
- label 标签文本
在提交按钮的时候,执行validate方法即可;实时校验可在rules中设置校验项 trigger: 'change'即可
1.el-form 设计
划分表单到每一个校验项(输入框,下拉框的等),可以设计成 3 级表单
奖励设置 这一个校验项稍微复杂一点,可以动态绑定 model 和 rules 实现子项的表单校验
<!-- 一级表单 --> <el-form class="form" ref="form" :model="form" :rules="form_rules" size="small"> <el-form-item label="红包活动标题" prop="name"> <el-input v-model='form.name' placeholder="请输入红包活动标题(活动展示)" /> </el-form-item> <el-form-item :label="`奖励设置(${form.seconde_form.length}/${max_reward_module_num})`" prop="seconde_form"> <el-card class="reward_module" v-for="(second_form, second_form_index) in form.seconde_form" :key="`${second_form_index}_second_form`"> <!-- 二级表单 --> <el-form class="second_form" :ref="`second_form_${second_form_index}`" :model="second_form" :disabled="is_form_item_disabled" inline size="small"> <el-form-item prop="packet_name" :key="`${second_form_index}_packet_name`" :rules="[{ required: true, message: '请输入奖励名称', trigger: 'change' }]" style="width:150px;margin-right:20px;"> <el-input v-model="second_form.packet_name" /> </el-form-item> </el-form> </el-card> </el-form-item> </el-form>
2.el-form-item 子项校验
校验比较简单,只需要获取到每一个表单对象,并执行validate即可,二级表单就遍历拿到二级表单独享执行同样的操作
定义 form 数据模型:
form: { name: '', seconde_form: [ { packet_name: '', }, ], },
封装一个 check_form 方法
/** * 表单校验方法 * @param {String} form_name */ function $check_form(form_name) { const form_component = this.$refs[form_name][0] "htmlcode">async checkParam(form_name) { try { await this.$check_form(form_name); for (let i = 0; i < this.form.seconde_form.length; i++) { await this.$check_form(`second_form_${i}`); } // next step do something } catch (e) { console.log(e); } },
蝙蝠岛资源网 Design By www.hbtsch.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
蝙蝠岛资源网 Design By www.hbtsch.com
暂无el-form 多层级表单的实现示例的评论...
更新日志
2024年12月23日
2024年12月23日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]