如何以编程方式发送复选框点击?
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
干杯!
我在这里和那里尝试了几个 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
干杯!