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

jQuery绑定input的change事件时如何识别触发变更的目标输入框

实现方案

你可以直接通过jQuery事件回调的内置特性获取触发事件的对应输入框,有两种常用实现方式:

方式1:使用this关键字

jQuery事件回调中的this默认指向触发本次事件的原生DOM元素,你可以直接把它包装成jQuery对象使用:

$( ".inputForSum" ).change(function() {
  // this就是触发本次change事件的输入框原生DOM
  const currentInput = $(this); // 转成jQuery对象可以直接调用jQuery相关方法
  console.log("触发事件的输入框值:", currentInput.val());
  // 额外扩展:还可以获取输入框所在的表格行索引,方便定位位置
  console.log("输入框所在行索引:", currentInput.closest('tr').index());
});

方式2:使用事件对象参数

事件回调默认会接收事件对象参数,通过事件对象的target属性也可以拿到触发事件的元素:

$( ".inputForSum" ).change(function(event) {
  const currentInput = $(event.target);
  console.log("触发事件的输入框值:", currentInput.val());
});

原代码问题说明

你原来的写法$('.inputForSum').val()会选中页面上所有带inputForSum类的元素,调用val()时默认只会返回第一个匹配元素的值,自然无法拿到触发事件的对应输入框的值。

如果需要提前给每个输入框加唯一标识,你可以在HTML里给input加自定义属性:

<input class="text-center inputForSum" type="text" name="menge" value="1.00" data-input-id="1" />
<input class="text-center inputForSum" type="text" name="menge" value="1.00" data-input-id="2" />

之后在回调里直接读取即可:

console.log("输入框唯一标识:", currentInput.data('input-id'));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:15:01