vue通过for循环生成input框后双向绑定失效问题

有些时候页面上有太多的表单元素,一个个的写太过繁琐,拿 input 框举例,众多的 input 框,无非就是输入框前的说明和 input 框的 name 属性不一样

<el-form :inline="true" :model="formInline" size="mini" class="demo-form-inline"><el-form-item label="姓名"><el-input v-model="formInline.name1" placeholder="请输入姓名"></el-input></el-form-item><!-- 当然,这里的性别应该下拉框,这里只做演示 --><el-form-item label="性别"><el-input v-model="formInline.sex1" placeholder="请选择性别"></el-input></el-form-item><el-form-item label="年龄"><el-input v-model="formInline.age1" placeholder="请输入年龄"></el-input></el-form-item>
</el-form>

既然这样,何不弄一个数组,通过 for 循环遍历出来,岂不是更省事?经过一番尝试,终于成功,特此记录,便于后续回顾及帮助到有需要的人。

1、通过 for 循环批量生成表单元素

模拟如下数据:

export default {name: 'BasicInfo',components: {},data() {return {formInline: {},formData: [{"id":"1","label":"姓名","tableColumn":"name","placeholder":""},{"id":"2","label":"性别","tableColumn":"sex","placeholder":"请选择性别"},{"id":"3","label":"年龄","tableColumn":"age","placeholder":"请输入年龄"}]}},
}

页面也改成 v-for 来遍历

<el-form :inline="true" :model="formInline" size="mini" class="demo-form-inline"><el-form-item v-for="item in formData" :index="item.id" :key="item.id" :label="item.label"><el-input v-model="item.tableColumn" :placeholder="item.placeholder"></el-input></el-form-item>
</el-form>

2、发现呈现的效果与预期的不符合

在这里插入图片描述
参考了几篇网友的解答
vue.js中 v-for 下的v-model 双向绑定失效的解决方法
v-for渲染input的坑!!!vue中v-for出来的input如何实现双向绑定
vue for循环v-model双向绑定对象/数组失效

后面自己试了下,改了下 v-bind 处的写法后,就可以了

3、修改 v-bind 处的写法

<el-form :inline="true" :model="formInline" size="mini" class="demo-form-inline"><el-form-item v-for="item in formData" :index="item.id" :key="item.id" :label="item.label"><el-input v-model="formInline[item.tableColumn]" :placeholder="item.placeholder"></el-input></el-form-item>
</el-form>

4、最终效果与预期一致:

借助 Vue 开发工具可以看到,已经实现了双向绑定

借助 Vue 开发工具可以看到,已经实现了双向绑定

5、探索其他问题

看了前面几篇博客,有的往 标签里动态绑定了一个 prop 属性,刚开始不清楚啥意思,看了下文档说用于表单校验和重置表单的
在这里插入图片描述
于是就做了下测试:

<el-form-item v-for="item in formData" :index="item.id" :key="item.id" :label="item.label":prop="item.tableColumn":required="item.required"inline-message="true":rules="{ required: true, message: `${item.label}不能为空`}"><!-- :rules="[{ required: true, message: '年龄不能为空'},{ type: 'number', message: '年龄必须为数字值'},{ required: true, message: '请输入邮箱地址', trigger: 'blur' },{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }]" --><el-input v-model="formInline[item.tableColumn]" :placeholder="item.placeholder"></el-input></el-form-item>

结果证实了
在这里插入图片描述

6、绑定 prop 属性后浏览器会有莫名其妙的红色警告问题

在这里插入图片描述
此问题参考了这篇文章:
The label’s for attribute doesn’t match any element id…的解决办法
在这里插入图片描述
打开浏览器开发者工具,可以看到,vue文件里的 最终被解析成了

<el-input v-model="formInline[item.tableColumn]" :placeholder="item.placeholder":id="item.tableColumn"
></el-input>

The End!感谢参考的这几篇文章的作者,正是因为有你们的分享,像我这样的小白遇到问题时才得已解决,所以我也向你们学习,将遇到的问题记录下来,以加深印象,也能让需要的人得到参考!
由于时间有限,此例子可以做得更好,比如:动态实现下拉框、多选等…,类似代码生成器那种,有时间了琢磨下后再记录!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/14519.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

01-05.Vue自定义过滤器

目录 前言过滤器的概念过滤器的基本使用给过滤器添加多个参数 前言 我们接着上一篇文章01-04.Vue的使用示例&#xff1a;列表功能 来讲。 下一篇文章 02-Vue实例的生命周期函数 过滤器的概念 概念&#xff1a;Vue.js 允许我们自定义过滤器&#xff0c;可被用作一些常见的文本…

[协议]stm32读取AHT20程序示例

AHT20温度传感器使用程序&#xff1a; 使用i2c读取温度传感器数据很简单&#xff0c;但市面上有至少两个手册&#xff0c;我这个对应的手册贴出来&#xff1a; main: #include "stm32f10x.h" // Device header #include <stdint.h> #includ…

数智赋能内涝治理,四信城市排水防涝解决方案保障城市安全运行

由强降雨、台风造成城市低洼处出现大量积水、内涝的情况时有发生&#xff0c;给人们出行带来了极大不便和安全隐患&#xff0c;甚至危及群众生命财产安全。 为降低内涝造成的损失&#xff0c;一方面我们要大力加强城市排水基础设施的建设&#xff1b;另一方面要全面掌握城市内涝…

U-Boot menu菜单分析

文章目录 前言目标环境背景U-Boot如何自动调起菜单U-Boot添加自定义命令实践 前言 在某个厂家的开发板中&#xff0c;在进入它的U-Boot后&#xff0c;会自动弹出一个菜单页面&#xff0c;输入对应的选项就会执行对应的功能。如SD卡镜像更新、显示设置等&#xff1a; 目标 本…

Unity射击游戏开发教程:(20)增加护盾强度

在本文中,我们将增强护盾,使其在受到超过 1 次攻击后才会被禁用。 Player 脚本具有 Shield PowerUp 方法,我们需要调整盾牌在被摧毁之前可以承受的数量,因此我们将声明一个 int 变量来设置盾牌可以承受的击中数量。

微信小程序画布显示图片绘制矩形选区

wxml <view class"page-body"><!-- 画布 --><view class"page-body-wrapper"><canvas canvas-id"myCanvas" type"2d" id"myCanvas" classmyCanvas bindtouchstart"touchStart" bindtouchmo…

OpenFeign快速入门 替代RestTemplate

1.引入依赖 <!--openFeign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--负载均衡器--><dependency><groupId>org.spr…

【全网最全】2024电工杯数学建模B题问题一14页论文+19建模过程代码+py代码+2种保奖思路+数据等(后续会更新成品论文等)

您的点赞收藏是我继续更新的最大动力&#xff01; 一定要点击如下的卡片链接&#xff0c;那是获取资料的入口&#xff01; 【全网最全】2024电工杯数学建模B题问一论文19建模过程代码py代码2种保奖思路数据等&#xff08;后续会更新成品论文等&#xff09;「首先来看看目前已…

C++中的四种类型转换运算符

隐式类型转换是安全的&#xff0c;显式类型转换是有风险的&#xff0c;C语言之所以增加强制类型转换的语法&#xff0c;就是为了强调风险&#xff0c;让程序员意识到自己在做什么。但是&#xff0c;这种强调风险的方式还是比较粗放&#xff0c;粒度比较大&#xff0c;它并没有表…

MySQL中如何知道数据库表中所有表的字段的排序规则是什么?

查看所有表的字段及其排序规则&#xff1a; 你可以查询 information_schema 数据库中的 COLUMNS 表&#xff0c;来获取所有表的字段及其排序规则。以下是一个示例查询&#xff1a; SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLLATION_NAME FROM information_schema.COL…

【设计模式深度剖析】【5】【创建型】【原型模式】| 类比群发邮件,加深理解

&#x1f448;️上一篇:建造者模式 | 下一篇:创建型设计模式对比&#x1f449;️ 目录 原型模式(Prototype Pattern)概览定义英文原话直译 3个角色类图1. 抽象原型&#xff08;Prototype&#xff09;角色2. 具体原型&#xff08;Concrete Prototype&#xff09;角色3. 客户…

必示科技参与智能运维国家标准预研线下编写会议并做主题分享

近日&#xff0c;《信息技术服务 智能运维 第3部分&#xff1a;算法治理》&#xff08;拟定名&#xff09;国家标准预研阶段第一次编写工作会议在杭州举行。本次会议由浙商证券承办。 此次编写有来自银行、证券、保险、通信、高校研究机构、互联网以及技术方等29家单位&#xf…

Linux基础(四):Linux系统文件类型与文件权限

各位看官&#xff0c;好久不见&#xff0c;在正式介绍Linux的基本命令之前&#xff0c;我们首先了解一下&#xff0c;关于文件的知识。 目录 一、文件类型 二、文件权限 2.1 文件访问者的分类 2.2 文件权限 2.2.1 文件的基本权限 2.2.2 文件权限值的表示方法 三、修改文…

CSS3 新增背景属性 + 新增边框属性(如果想知道CSS3新增背景属性和新增边框属性的知识点,那么只看这一篇就够了!)

前言&#xff1a;CSS3在CSS2的基础上&#xff0c;新增了很多强大的新功能&#xff0c;从而解决一些实际面临的问题&#xff0c;本篇文章主要讲解的为CSS3新增背景属性和新增边框属性。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSD…

视觉SLAM十四讲:从理论到实践(Chapter5:相机与图像)

前言 学习笔记&#xff0c;仅供学习&#xff0c;不做商用&#xff0c;如有侵权&#xff0c;联系我删除即可 目标 理解针孔相机的模型、内参与径向畸变参数。理解一个空间点是如何投影到相机成像平面的。掌握OpenCV的图像存储与表达方式。学会基本的摄像头标定方法。 一、相…

机器学习第四十周周报 WDN GGNN

文章目录 week40 WDN GGNN摘要Abstract一、文献阅读1. 题目2. abstract3. 网络架构3.1 问题提出3.2 GNN3.3 CSI GGNN 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程4.3.1 数据获取4.3.2 参数设置4.3.3 实验结果 5. 结论二、GGNN1. 代码解释2. 网络结构小结参考文献参考文…

基础3 探索JAVA图形编程桌面:逻辑图形组件实现

在一个宽敞明亮的培训教室里&#xff0c;阳光透过窗户柔和地洒在地上&#xff0c;教室里摆放着整齐的桌椅。卧龙站在讲台上&#xff0c;面带微笑&#xff0c;手里拿着激光笔&#xff0c;他的眼神中充满了热情和期待。他的声音清晰而洪亮&#xff0c;传遍了整个教室&#xff1a;…

Hsql每日一题 | day02

前言 就一直向前走吧&#xff0c;沿途的花终将绽放~ 题目&#xff1a;主播同时在线人数问题 如下为某直播平台主播开播及关播时间&#xff0c;根据该数据计算出平台最高峰同时在线的主播人数。 id stt edt 1001,2021-06-14 12:12:12,2021-06-14 18:1…

【错误解决】使用HuggingFaceInstructEmbeddings时的一个错误

起因&#xff1a;使用huggingface构建一个问答程序时出现的问题。 错误内容&#xff1a; 分析&#xff1a; 查看代码发现&#xff0c;HuggingFaceInstructEmbeddings和sentence-transformers模块版本不兼容导致。 可以明显看到方法参数不同。 解决&#xff1a; 安装sentenc…

element-ui的Form 表单有些项的参数校验

项目场景&#xff1a; 提示&#xff1a;项目相关背景&#xff1a; 项目场景&#xff1a;有时候自己的Form 表单中的某几项引入的一些项不好去校验 这样的咋去校验呢&#xff1f; 解决方案&#xff1a; 提示&#xff1a;问题的具体解决方案&#xff1a; 例如&#xff1a;写一…