javascript - onChange 事件与复选框的 JavaScript 修改

标签 javascript html checkbox dom-events

我尝试用 js 检查复选框并检测更改,但事件 onchange 未检测到更改,而这是视觉上的变化。 (抱歉英语不好,我是法国人) 这是一个例子:

document.querySelector("#checkbox").onchange = (e) => {
  let checked = e.target.checked;
  if (checked) {
    console.log("checked !");
  } else {
    console.log("unchecked...");
  }
}

document.querySelector("#buttonOn").onclick = (e) => {
  document.querySelector("#checkbox").checked = true;
}
document.querySelector("#buttonOff").onclick = (e) => {
  document.querySelector("#checkbox").checked = false;
}
<button id="buttonOn">On</button>
<button id="buttonOff">Off</button>
<input type="checkbox" name="" id="checkbox">

最佳答案

点击按钮时需要触发事件

document.querySelector("#checkbox").onchange = (e) => {
  let checked = e.target.checked;
  if (checked) {
    console.log("checked !");
  } else {
    console.log("unchecked...");
  }
}

// Create new change event
var event = new Event('change');

document.querySelector("#buttonOn").onclick = (e) => {
  document.querySelector("#checkbox").checked = true;
  // Trigger onchange
  document.querySelector("#checkbox").dispatchEvent(event);
}
document.querySelector("#buttonOff").onclick = (e) => {
  document.querySelector("#checkbox").checked = false;
  // Trigger onchange
  document.querySelector("#checkbox").dispatchEvent(event);
}
<button id="buttonOn">On</button>
<button id="buttonOff">Off</button>
<input type="checkbox" name="" id="checkbox">

关于javascript - onChange 事件与复选框的 JavaScript 修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63534289/

相关文章:

javascript - 隐藏/禁用最后一张幻灯片上的 'Next' 按钮和第一张幻灯片上的 'Prev' 按钮

javascript - 每个复选框出现两次

checkbox - 如何使用 React Hook Forms Field Array 从服务器设置动态数组的复选框值

javascript - 检查是否存在已加载的 JavaScript 库供我的应用程序使用,否则加载我自己的版本?

javascript - 是否可以检测到 Android 强制门户浏览器?

javascript如何获取html样式的自定义属性值

html - 创建一个比其他子菜单大的子菜单以包含表格

jquery - 如何使菜单始终附加在顶部

javascript - 为什么此 javascript 代码会禁用来 self 的 Blogger 的安全连接(我认为是 SSL 证书)?

android - 具有复选框行为的自定义 ListView ,例如在 gmail 应用程序上