【发布时间】:2020-10-22 08:54:36
【问题描述】:
我在这里和那里尝试了几个 javascript 函数,但似乎没有一个对我有用。 我正在做的是展示一个塔,它有用户希望的多个阶段。这基本上是使用 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 被触发,这不是我想要的,因为该复选框必须由用户单击。
有什么解决办法吗?
【问题讨论】:
标签: javascript checkbox dispatchevent