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

使用event时触发‘Event已废弃’报错,寻求JavaScript替代实现方案

使用event时触发‘Event已废弃’报错,寻求JavaScript替代实现方案

嗨,我来帮你解决这个问题!你遇到的event已废弃提示,是因为你直接用了全局的event对象——这是早期浏览器的非标准写法,现在已经被标记为废弃特性了。咱们改成显式传递事件对象的方式就行,既符合现代JavaScript标准,还能100%保留你原本的功能逻辑,完美适配你那种重复模板的场景。

具体修改步骤:

1. 先修改HTML的按钮调用

把原来的onClick属性改成显式传递event参数,这样函数就能拿到当前的点击事件对象了:

<button class="ClearElementsBtn" onClick="ClearElementName(event, 'InputID');"></button>

2. 调整JavaScript函数的参数

只需要给函数加一个接收事件对象的参数,剩下的逻辑完全不用动——因为你原本通过按钮父元素定位对应模板输入框的逻辑是完全合理的,适配多重复模板的需求:

function ClearElementName(event, ElementName) {
 var clickedelement = event.target
 var elementsbyname = document.getElementsByName(ElementName)
 var TemplateCount = elementsbyname.length;
 if (TemplateCount > 0) {
      for (let Group = 0; Group < TemplateCount; Group++) {
           if (clickedelement.parentElement.parentElement.contains(elementsbyname[Group])) {
                elementsbyname[Group].value = "";
           }
       }
 }
}

为啥这样改可行?

你原本的逻辑是通过点击按钮的父级元素,判断哪些输入框属于当前模板,然后只清空这些输入框——这个逻辑非常适合你那种“新增模板会重复使用相同name/ID”的场景。现在只是把全局event改成了显式传递的参数,完全不影响原有逻辑的运行,同时彻底解决了“event已废弃”的报错提示。

不管你后续新增多少个重复模板,每个按钮依然只会清除自己所在模板里的对应输入框,和你原本的需求完全匹配~

备注:内容来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 09:24:32