javascript - 如何以编程方式发送复选框单击?
问题描述
我在这里和那里尝试了几个 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 被触发,这不是我想要的,因为必须由用户单击复选框。
有什么解决办法吗?
解决方案
我已经根据您的描述编写了一些代码。
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
);
你应该检查这个页面。
输入复选框选中属性
干杯!
推荐阅读
- python - VS code 1.35版无法安装Jupyter notebook扩展
- sql-server - 找不到数据库时,查找哪个数据库受到影响?
- java - 扫描仪在多种方法中的使用
- docusignapi - API 集成文档签名,模板编辑器限制用户创建收件人
- mongodb - 存在 $out 操作问题的 MongoDB 聚合管道
- android - 使用 ffmpeg 扩展构建 Exoplayer
- python - 机器人框架:我可以从多个测试文件中设置套件而不在同一个文件中定位吗?
- ruby - -7 % 3 = 2、-13 % 3 = 2 或 -1 % 3 = 2 在幕后究竟表现如何?红宝石
- python - Pandas groupby 和数据透视表绘图
- list - 该表达式的类型为“void”,因此无法使用其值 - Flutter Dart 无法将自定义对象添加到 for 循环中的列表中