Vue:如何将v-for生成的input框数据用v-model绑定到一个数组

Vue 2 中 v-model 指令的使用详解 v-model是 Vue 提供的一个语法糖,它使得在表单控件元素与应用状态之间建立双向绑定变得非常简单。这意味着你可以轻松地将用户的输入反映到组件的状态中,并且当组件的状态发生变化时,相应的表单元素也会自动更新。v-model除了原生的 HTML 表单元素,v-model还可以在自定义组件上使用,以实现更复杂的双向绑定逻辑。要使v-model接受一个名为value的 prop。触发一个名为input的事件来更新父组件的数据。 阅读详情

最近小伙伴在写vue页面的时候发生了一个操作:

用v-for生成了多个input,然后他把input的数据用v-model双向绑定到了一个数组cur里面。

大概是这样写的

v-for ··········v-model="cur[index]"具体忘记了。v-for前是有index的。

cur:[],

然后一直报错cannot use in····。

然后到第二个值开始是输不出来的。

百度谷歌还有stackoverflow上找了好久发现很多人有这个问题,也有很多解决方法。。一一尝试之后没有发现有效的方法。

经过一番痛苦的思考,鬼使神差的让他把这个数组cur外面包了个对象。

即

a{

cur:[],

},

然后v-model绑定到a.cur[index],然后居然绑定上去了。

问题是解决了····但是其中的原理呢。

于是开始了研究

首先排除了js本身的原因,写了这样的代码


发现是可以输出一样的东西。

也就是说这种机智和js是没什么关系的。

于是把问题锁定在了v-model的机制上。

去官方查了v-model的原理:

官方文档说了v-model就是个语法糖,其本质实现还是靠v-bind

给原生控件绑定事件,捕捉到原生组件的值,利用 $emit方法,触发input方法,组件监听到 input事件然后把值传给变量。

监听原生组件的事件,当获取到原生组件的值后把 值通过调用 $emit('input' ,data) 方法去触发 input事件 

你就可以看出来了。他的关键在于那个data.也就是每个item改变后,其实items是没有改变的。

所以我觉得每次v-bind之后的值是被弄到了data里面,但是data每次被重置成undefined了当运行到v-for的第二次循环时候,数组的0索引位置被重置了。

但我还是不知道为什么外面套个对象把数组作为这个对象的一个属性就行了。



Vue3中的模板指令——表单输入绑定指令v-model(:value和@input) v-model指令实现表单输入值与父组件中的属性变量保持同步 阅读详情

相关推荐

PSINS惯性系初始对准与代码解读

本文参考“摇摆基座上基于信息的捷联惯导粗对准研究”(秦永元),以及“严恭敏博士后研究报告”,详细解读并推导了静基座惯性系对准算法,并与PSINS代码进行对照解读。

u011012050的博客 6752

Vue基础知识

前端渲染的方式: 原生js拼接字符串。缺点:不同开发人员的代码风格差别很大,不利于维护 使用前端模板引擎。优点:代码可读性明显提高了,方便后期维护。缺点:没有专门提供事件机制 vue模板。解决了前面两者的问题 标题 1 Vue的基本使用 Vue的使用步骤 需要提供标签用于填充数据<div id='app'>{{msg}}</div> 引入vue.js库文件 可以使用vue的语法做功能(创建vue实例对象) var vm=new Vue({ el:'#app',//.

weixin_45651869的博客 504

【AirSim+PX4】WSL2上运行PX4连接Airsim步骤

在 Linux 命令行中输入以下命令以添加(或改变)环境变量。注意,此处的 IP 地址应为。4.启动 sln 文件的调试以进入 UE4 编辑器,并在 Linux 中启动 PX4。

m0_53538421的博客 1505

Vue.js中的v-model表单绑定

通过使用v-model = " 属性",可以便捷的洞悉表单中使用者选择数据的变化。作用于不同的标签会有不同的效果,都是用于捕捉用户输入的数据存放再Vue实例中。如input标签获取输入值,单选框获取单选值,复选框获取选择值。 1.作用于input标签。 ...

tanxinji的博客 3089

从DCI-P3到sRGB:跨媒体色彩转换的矩阵奥秘与实践

本文深入解析从DCI-P3到sRGB的色彩空间转换技术,揭示矩阵运算的核心原理与实践技巧。通过实战案例展示如何正确处理白点差异、伽马曲线转换等关键环节,帮助影视从业者解决跨媒体色彩匹配问题,确保作品在不同设备上呈现一致的视觉效果。

weixin_28709649的博客 328

告别降级CUDA!手把手教你为RTX 50系显卡(5080/5090)配置专属的PyTorch Nightly + vLLM推理环境

本文详细指导如何为RTX 50系显卡(5080/5090)配置专属的PyTorch Nightly和vLLM推理环境,特别针对CUDA 12.8的适配问题提供解决方案。从硬件准备到源码编译,再到模型部署与性能调优,手把手教你构建高效AI推理系统。

weixin_33724046的博客 408

[vue学习笔记]数组+事件+v-model的使用

事件就是我们的一些操作,比如点击(click) 按键(keyup),我们经常使用v-on为事件绑定一个js行为v-on:click="触发";

weixin_62697030的博客 974

Revit Dynamo实战:用Excel数据批量生成桥梁模型(附自适应族技巧)

本文详细介绍了如何利用Revit Dynamo结合Excel数据实现桥梁参数化建模,重点讲解了数据驱动建模、自适应族优化及大型项目性能管理三大核心技巧。通过结构化Excel数据、高级自适应族创建和分块处理策略,显著提升桥梁建模效率与设计变更响应能力。

weixin_42520025的博客 386

vue v-model绑定到数组

有次项目中需要用到该场景,正确操作如下 JS data:{ a:{ batch: [], //批号 num: [], //数量 }, } HTML <input v-model="a.batch[0]" type="text" placeholder="请输入批号"> <input v-model="...

sam的博客 2万+

OpenClaw小白安装全攻略:5000字详解,3分钟上手

为什么值得装 OpenClaw?最近科技圈爆火的 OpenClaw(昵称 “小龙虾”),不是普通 AI 聊天工具 —— 它是能本地部署、直接操控电脑的 AI 智能体,相当于给电脑配了个 “全能助手”:整理文件、自动搜资料、写文档、控制浏览器,甚至对接微信 / 飞书发消息,全程不用手动操作。更关键的是:它免费开源、支持全平台,新手不用懂代码,复制粘贴命令就能装,数据存在本地不泄露隐私。截至 2026 年 3 月,GitHub 星标已破 25 万,券商都出研报推荐,上班族、学生党用它提升效率超香!

通俗易懂学IT 1211

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

有些时候页面上有太多的表单元素,一个个的写太过繁琐,拿 input 框举例,众多的 input 框,无非就是输入框前的说明和 input 框的 name 属性不一样</</</</</</</既然这样,何不弄一个数组,通过 for 循环遍历出来,岂不是更省事?经过一番尝试,终于成功,特此记录,便于后续回顾及帮助到有需要的人。

qq_44864879的博客 2028

uniapp [全端兼容] - 详细实现人脸识别和活体检测功能,实时监测人脸是否进入区域及动作是否正确播报,免费自动提示引导动作及语音,提供提供实名认证、身份证识别、人脸信息采集、刷脸扫脸认证示例代码

uniapp,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,人脸识别,扫脸认证,人脸认证,活体认证,身份认证,uni-app人脸识别详细教程,如何在app端实现免费人脸识别教程,如何在小程序端做,最好用的插件,安卓ios百度人脸识别、活体检测、人脸采集APP,H5人脸识别带前后摄像头,适合新手看的人脸识别功能教程,详细示例代码源码,有没有免费的,接入百度,阿里云人脸识别,百度,api,活体检测,数据采集,动作提示指引,语音提示指引,报错,无法核验一直出错,根本用

🏆 前端领域优质创作者 1万+

在 vue.js 中动态绑定 v-model

在最近的项目中(基于vue),有一个需求就是通过 v-for 动态生成 input。在正常情况下,页面中的input数量是固定的,而且每个input绑定的v-model也是固定的,我们可以在 data 中设置。 现在input数量是根据接口返回的数据动态生成的,那么input的 v-model该怎么动态绑定呢? &lt;div class="checkbox" v-for="(list,...

qq_30944053的博客 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

vue的v-for、v-model、v-bind的基本使用

data: {//数组arr2: [{title: '星期一'}, {title: '星期二'}, {title: '星期三'}],//对象area: {"A": ["安阳", "安徽"],"B": ["北京", "保定"],"C": ["长安", "长沙"]},},vue循环数组v-for循环数// v-for循环数组的时候有两个参数 第一个是数组项(表示数组中的每一项) 第二个是索引值 也叫下标。

Lu_menglin的博客 1535

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

v-model的基本使用;v-model原理;v-model绑定(textarea、checkbox、radio、select);v-model的值绑定;v-model修饰符

v-model的基本使用;v-model原理;v-model绑定(textarea、checkbox、radio、select);v-model的值绑定;v-model修饰符

qq_54075517的博客 6930

Vue 爬坑之旅 -- 双层 v-for 中使用 v-model 绑定 input 时碰到的坑

双层v-for中使用 v-model时碰到的坑 处理数据时不能直接传对象,要么用深拷贝,要么转为json再处理

Alex_Zhao 的博客 7028

vue.js中 v-for 下的v-model 双向绑定失效的解决方法

vue.js中 v-for 下的v-model 双向绑定失效的解决方法问题错误代码我想实现的效果:实际出来的效果:解决办法 问题 我自己写了一个关于uView UI的表单集成组件,发现一个问题,就是如文章题目所说,v-for循环组件内部的v-model绑定会出现失效的情况。 但是这是在通过uniapp编译为微信小程序的时候发现的,编译到H5并不会有这样的错误,其他的框架我没尝试过,不知道是不是普遍问题。简单记录一下问题以及解决办法,下面是错误的代码。 错误代码 <u-form :model="fo

#死亡如风# 6633

vue 如何在循环中绑定v-model

vue 如何在循环中绑定v-model 我现在有这么一个需求,页面上有多项输入框,但是具体有多少项,我也不知道,它是通过"新增一项"按钮点击事件,点击一下,就新增一项;如下图这个样子; 代码如下: &lt;ul class="list"&gt; &lt;li&gt; &lt;label&gt;第1项&lt;/label&gt; &lt;input type=

weixin_33713707的博客 4754

vue中v-model详解

vue中经常使用到和这类表单元素,vue对于这些元素的数据绑定和我们以前经常用的jQuery有些区别。vue使用v-model实现这些标签数据的双向绑定,它会根据控件类型自动选取正确的方法来更新元素。 v-model本质上是一个语法糖。如下代码本质上是<input :value=“test” @input=“test = $event.target.value”>,其中@input是对输入事件的一个监听:value="test"是将监听事件中的数据放入到input,下面代码是v-model的一个

weixin_45734902的博客 1万+

vue中input绑定事件

做的越多遇到的问题越多,解决的问题越多,你会的就越多,加油 我们都知道vue中是可以双向数据绑定的,但是有时候我们的事件会和双向绑定冲突。 input中如果用了v-model,那么给它绑定的事件就不会执行。 我遇到的问题是:因为是数组,给input绑定了一个值,绑定的change事件不会执行。所以把绑定数据改成把值绑定到value上,两个都是绑定,但是value是input原有的属性。(希望...

qq_32538087的博客 6056

input中的值绑定/v-model修饰符

input中的值绑定 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>多选框</title> </head> <body> <div id="app"> <label :for="item" v-for="item in originHobbies"> <input typ

407指导员 930

【Vue】表单 input 绑定

网址:https://vue.docschina.org/v2/guide/forms.html 表单 input 绑定 基础用法 可以通过使用 v-model 指令,在表单 input, textarea 和 select 元素上创建双向数据绑定。v-model 指令可以根据 input 的 type 类型,自动地以正确的方式更新元素。虽然略显神奇,然而本质上 v-model 不过是「通过监听用...

清凌的博客 1747

4 list[] 数组、v-for、v-model

Vue3循环和数据双向绑定-佳丽列表的制作场景编写Vue3的基本结构声明佳丽数组并循环出来动态增加佳丽总结 场景 本文通过完成大宝剑城展示佳丽列表的需求,学习一下在Vue3.x中如何进行循环展示和双向数据绑定。 如果你想严肃点学习,可以把它看作是一个 TodoList 的小功能,形式不同,知识不变。 编写Vue3的基本结构 在项目根目录,新建一个文件 Demo4.html,然后把Demo1.html的代码全部复制过来,修改下面代码的样子。 <!DOCTYPE html> <html lan

wgchen 998

vue v-for通过index动态绑定input输入框的数据!vue中v-for出来的多个input,如何拿到每个input的值?vue为什么v-model绑定Object的时候不生效?

vue v-for通过index动态绑定input输入框的数据 vue为什么v-model绑定Object的时候不生效? Vue动态添加v-model绑定及获取其返回数据 vue多个input绑定一个数组变量问题 vue中v-for出来的多个input,如何拿到每个input的值? ...

juvenile_的博客 3125
上一篇: 如何将一个spring项目重构成spring-boot项目(仅后台)
下一篇: 前后端分离的必要性
Tate_Brown
博客等级 码龄9年 39粉丝 107原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值