You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue+Element UI:如何同时获取数组输入框的ID与值?

解决Element UI Input Number组件change事件同时获取数值和对应item.id的问题

嘿,我来帮你搞定这个问题!你遇到的情况是Element的Input Number组件默认的change事件只返回当前输入的数值,没法直接拿到对应的item.id,不过我们可以通过箭头函数包装的方式把额外参数传进去,具体步骤如下:

1. 修改模板中的事件绑定

把原来的@change="handleChange"改成用箭头函数传递两个参数:当前的数值val和当前项的id:

<div v-for="(item, index) in dataList" v-bind:key="item.id">
  <el-input-number v-model="item.qty" @change="(val) => handleChange(val, item.id)"></el-input-number>
</div>

2. 调整handleChange函数的参数

现在你的handleChange函数就可以同时接收数值和id两个参数了:

<script type="text/javascript">
handleChange = function (value, itemId) {
  console.log('当前数值:', value);
  console.log('对应item的id:', itemId);
  // 这里就可以同时处理数值和对应的id啦
};
</script>

额外小技巧:传递完整item对象

如果你需要整个item对象而不只是id,也可以直接传递item:

<el-input-number v-model="item.qty" @change="(val) => handleChange(val, item)"></el-input-number>

对应的函数就改成:

handleChange = function (value, item) {
  console.log('数值:', value);
  console.log('完整的item对象:', item);
};

原理说明

Element UI的Input Number组件的change事件默认只会触发并传递当前的数值参数,所以我们需要用箭头函数作为中间层,把当前循环项的额外数据(比如id或整个item)一并传递给回调函数,这样就能在handleChange里同时获取到你需要的信息了。

内容的提问来源于stack exchange,提问作者Dedy Chaidir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:02:43