【发布时间】:2021-04-06 16:18:59
【问题描述】:
我正在尝试根据是否选中复选框和收音机来显示警报消息。我的问题是,此代码仅在选中或未选中所有复选框/收音机时才有效,如果我跳过一个,它仍然会检查警报。做错了什么?我试图查看有关此主题的一些先前问题。
document.querySelector('#id').addEventListener('click', (e) => {
e.preventDefault();
if (!$('element#id').find('input[type="checkbox"]').is(':checked') && !$('element#id').find('input[type="radio"]').is(':checked')) {
alert('not checked')
return false;
} else {
alert('checked')
}
})
我也试过这个,如果我只选中一个它会提醒“已选中”,如果没有选中,当我按下按钮时没有任何反应......?也许这个问题有一个简单的解决方案? :-)
var inputs = document.querySelectorAll('element#id input[type="checkbox"]:checked, element#id input[type="radio"]:checked');
for(var i = 0; i< inputs.length; i++){
if(inputs[i].checked){
alert('checked')
}else{
alert('not checked')
}
}
这是我的 html 标记
<input type="checkbox" id="1" class="myclass">
<input type="checkbox" id="2" class="myclass">
<input type="checkbox" id="3" class="myclass">
<input type="checkbox" id="4" class="myclass">
<input type="radio" id="5" class="myclass" name="a"><input type="radio" id="6" class="myclass" name="a">
<input type="radio" id="7" class="myclass" name="b"><input type="radio" id="8" class="myclass" name="b">
<input type="radio" id="9" class="myclass" name="c"><input type="radio" id="10" class="myclass" name="c">
<input type="radio" id="11" class="myclass" name="d"><input type="radio" id="12" class="myclass" name="d">
<input type="radio" id="13" class="myclass" name="e"><input type="radio" id="14" class="myclass" name="e">
<input type="radio" id="15" class="myclass" name="f"><input type="radio" id="16" class="myclass" name="f">
<input type="checkbox" id="17" class="myclass">
<input type="checkbox" id="18" class="myclass">
如果我在检查所有输入的情况下运行它,我会得到 18 true,而不是检查 18 false。
我的目标是必须选中所有复选框,必须选中每对中的一个无线电。如果您错过了一个复选框或收音机,您会收到警报/警告。希望这能解释更多:-)
const checkboxElement = document.querySelectorAll('.myclass');
checkboxElement.forEach(item => {
console.log(item.checked)
})
【问题讨论】:
标签: javascript html forms