如何以编程方式发送复选框点击?

How can I dispatch a checkbox click programmatically?

我在这里和那里尝试了几个 javascript 函数,但似乎 none 对我有用。 我正在做的是展示一个塔,它有用户希望的多个阶段。这基本上是在每个阶段使用 Js 创建 HTML 标签,最后一个是复选框。 我想做的是,当我单击一个复选框时,所有位于该复选框上方的其他复选框也会以编程方式进行检查。这就是我所做的:

    let event = new Event('click');

    //Here, q is the maximum stage that the user set.

    document.addEventListener('click', function(e) {
        let readStr = e.target.id;
        if (readStr.startsWith("checkboxFan") && e.isTrusted) {
            for (let r=parseFloat(readStr.substr(-1))+1; r<=q; r++) {
                document.getElementById("checkboxFan"+r).dispatchEvent(event);
            }
        }
    }, false);

它正在很好地找到 ID 并做我想做的事,但 dispatchEvent 没有按预期工作。事实上,它根本不起作用。此外,“click()”函数有效但触发了 isTrusted,这不是我想要的,因为复选框必须由用户单击。

有什么解决办法吗?

我已经根据你的描述写了一些代码。
https://stackblitz.com/edit/js-poevax?file=index.js

document.addEventListener(
  "click",
  function(e) {
    let readStr = e.target.id;
    if (readStr.startsWith("checkboxFan") && e.target.checked) {
      for (let r = parseFloat(readStr.substr(-1)) + 1; r <= q; r++) {
        document.getElementById("checkboxFan" + r).checked = true;
      }
    }
  },
  false
);

您应该查看此页面。
Input Checkbox checked Property

干杯!