Javascript 禁用每个未选中的复选框
我有一堆表单,每个表单中都有一个复选框,当满足条件时,我想禁用所有未选中的复选框 我试过这么做,但运气不好Javascript 禁用每个未选中的复选框,javascript,html,forms,dom,input,Javascript,Html,Forms,Dom,Input,我有一堆表单,每个表单中都有一个复选框,当满足条件时,我想禁用所有未选中的复选框 我试过这么做,但运气不好 if (updateShowcasedProducts.length == 12) { document.querySelectorAll('input[type="checkbox"]:not(:checked)').disabled = true; } 我最好只使用香草javascr
if (updateShowcasedProducts.length == 12) {
document.querySelectorAll('input[type="checkbox"]:not(:checked)').disabled = true;
}
我最好只使用香草javascript。您需要循环查询选择的结果
您需要循环查询SelectorAll的结果
querySelectorAll返回一个NodeList对象,您必须使用该对象迭代元素并禁用它们
if (updateShowcasedProducts.length == 12) {
document.querySelectorAll('input[type="checkbox"]:not(:checked)').forEach((element) => {
element.disabled = true;
});
}
querySelectorAll返回一个NodeList对象,您必须使用该对象迭代元素并禁用它们
if (updateShowcasedProducts.length == 12) {
document.querySelectorAll('input[type="checkbox"]:not(:checked)').forEach((element) => {
element.disabled = true;
});
}
您可以首先为所有这些输入使用一个类,即复选框。然后使用选中的属性:
let checkBoxes = document.getElementsByClassName("checkbox");
checkBoxes.forEach(checkBox)=>{
if(!checkBox.checked){
checkBox.disabled=true;
};
});
您可以首先为所有这些输入使用一个类,即复选框。然后使用选中的属性:
let checkBoxes = document.getElementsByClassName("checkbox");
checkBoxes.forEach(checkBox)=>{
if(!checkBox.checked){
checkBox.disabled=true;
};
});
您可以使用以下内容:
if (updateShowcasedProducts.length == 12) {
document.querySelectorAll('input[type="checkbox"]').forEach(i => i.disabled = true);
}
编辑:我太慢了。@Gunther已建议:您可以使用以下内容:
if (updateShowcasedProducts.length == 12) {
document.querySelectorAll('input[type="checkbox"]').forEach(i => i.disabled = true);
}
编辑:我太慢了。已经由@Gunther建议:这是否回答了您的问题?这回答了你的问题吗?看起来OP并没有实际使用一个名为CheckBox的类,如果他使用该类,我认为这将是一个简单的解决方案。需要更多的现有代码更改,但我理解您的逻辑。是的,您是对的,这将是代码中的一个大更改,嗯……我没有考虑过。您的解决方案更优雅、更灵活,因此我将投票。所谓灵活,我的意思是假设将来禁用时只应包含某些复选框,而不是所有未选中的复选框。似乎OP实际上使用了一个名为checkbox的类。如果他使用该类,我认为这将是一个简单的解决方案。需要更多现有代码更改,但我理解您的逻辑。是的,您是对的,这将是代码上的一个大变化,嗯……我没想过。你的解决方案更优雅、更灵活,所以我会投票。所谓灵活,我的意思是假设将来只有某些复选框应包含在禁用中,而不是所有未选中的复选框。无论哪种方式,谢谢您的输入无论哪种方式,谢谢您的输入