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

如何为所有指定类名的输入字段绑定事件函数?(JavaScript)

解决方案

步骤1:抽离可复用的事件函数

先把现有逻辑封装成独立的命名函数,方便重复调用:

function checkKey(e) {
  const hpKeyCode = e.keyCode;
  const keyPos = e.target.selectionStart;
  for (let i = 0; i < e.target.value.length; i++) {
    if (e.target.value[i] === "," && keyPos === i + 1 && hpKeyCode === 8) {
      e.preventDefault();
      e.target.selectionStart = keyPos - 1;
      e.target.selectionEnd = keyPos - 1;
    }
  }
}

步骤2:批量绑定事件到所有blah类输入框

通过document.querySelectorAll获取所有目标元素,遍历后逐个绑定事件:

// 获取所有类名为blah的输入元素
const inputs = document.querySelectorAll('.blah');

// 遍历绑定事件
inputs.forEach(input => {
  input.addEventListener('keydown', checkKey);
});

关于「e未定义」的报错原因

你之前出现这个错误,大概率是用了内联事件绑定(比如在HTML里写onkeydown="checkKey()"),这种写法如果没手动传递event参数,函数里的e就会未定义。上面用addEventListener的方式会自动把事件对象传递给函数,不会有这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 03:57:31