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

如何将jQuery获取的元素包装为含e.target的对象传入updateHandler?

解决方法:构造模拟事件对象传入updateHandler

你的问题核心是:updateHandler期望接收的是事件对象(比如表单元素触发input/change事件时的回调参数),这类对象包含target属性(指向触发事件的DOM元素),但你直接传入了DOM元素本身,所以会提示e.target未定义。

下面是几种可行的解决方案:

1. 手动构造极简模拟事件对象

直接创建一个包含target属性的对象,把DOM元素赋值给它,这是最简单的方式:

// 获取DOM元素(jQuery或原生方式都可以)
const domEl = $('[name="amount"]')[0]; 
// 或者用原生:const domEl = document.getElementsByName('amount')[0];

// 构造符合要求的模拟事件对象
const mockEvent = {
  target: domEl,
  value: domEl.value // 可选,如果函数需要直接访问e.value的话
};

// 传入updateHandler
updateHandler(mockEvent);

2. 创建真实事件对象(更贴近原生场景)

如果需要更接近浏览器原生事件的结构,可以用Event构造函数创建真实事件,再手动绑定目标元素:

const domEl = $('[name="amount"]')[0];
// 创建一个input类型的事件(可根据需求换成change等)
const realEvent = new Event('input');
// 给事件对象绑定目标元素
realEvent.target = domEl;
// 可选:添加value属性
realEvent.value = domEl.value;

updateHandler(realEvent);

3. 若在事件回调中调用(可选场景)

如果你的逻辑是在元素的事件触发时调用updateHandler,可以直接在jQuery的事件回调中传递事件对象:

$('[name="amount"]').on('input', function(e) {
  // 这里的e是jQuery包装的事件对象,e.target就是对应的DOM元素
  updateHandler(e);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:09:25