javascript - 如何添加事件侦听器以使用常规 javascript 检查单选按钮?
问题描述
正如您在下面的代码片段中看到的,如果选中了两个按钮,则会输入错误。我想实时执行此操作,而不必执行“checked =”checked”。我不确定如何处理事件侦听器为达到这个
function check(form) {
let count = 0
const boxes = form.querySelectorAll("input[type=checkbox]")
boxes.forEach(box => {
if(box.checked === true) {
count += 1
}
})
if(count > 1) {
const error = form.querySelector("span[class=error]")
error.innerHTML = "don't check more than 1"
}
}
check(document.querySelector("#form1"))
<form id="form1">
<label>A
<input type="checkbox" checked="checked">
</label> <br />
<label>B
<input type="checkbox" checked="checked">
</label> <br />
<label>C
<input type="checkbox">
</label> <br />
<span class="error"> </span>
</form>
解决方案
您可以使用更改事件。
let count = 0
const boxes = form.querySelectorAll("input[type=checkbox]")
boxes.forEach(box => {
box.addEventListener("change", function(e){
if(box.checked) count++;
else count--;
if(count > 1) {
const error = form.querySelector("span[class=error]")
error.innerHTML = "don't check more than 1"
}
});
});
推荐阅读
- c# - C#迭代和比较多个节点
- python - Python Rest API 发布图像
- c - 将 Win32 串行 (RS232) 通信移植到 POSIX
- java - 在处理过程中删除文件时,Apache Camel 路由挂起
- javascript - 数组原型将包含在数组列表中
- raspberry-pi - 传感器多线程树莓派
- websocket - JMeter WebSocket 插件 - 关闭 SignalR 连接
- angular - p 日历上的 onClose 不会触发
- java - 在泛型方法中处理类型创建
- android - Android 更新到 gradle 3.2.1 [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION] 在 Android <=6