如何在JavaScript中处理条件复选框选择?
我们有三个复选框,分别为左、右和右。 选择“左”和“右”时,应同时禁用这两个选项 但是,在检查左右两侧时;两者的复选框均未禁用。(或)警报(“你好1”)未触发如何在JavaScript中处理条件复选框选择?,javascript,Javascript,我们有三个复选框,分别为左、右和右。 选择“左”和“右”时,应同时禁用这两个选项 但是,在检查左右两侧时;两者的复选框均未禁用。(或)警报(“你好1”)未触发 document.getElementById('Left').disabled = false; var isLeft = document.getElementById('Left').checked; document.getElementById('Right').disabled = false; var isRight =
document.getElementById('Left').disabled = false;
var isLeft = document.getElementById('Left').checked;
document.getElementById('Right').disabled = false;
var isRight = document.getElementById('Right').checked;
document.getElementById('Both').disabled = false;
var isBoth = document.getElementById('Both').checked;
if (isLeft == true && isRight == true)
{
alert('Hello 1');
document.getElementById('Both').checked = false;
document.getElementById('Both').disabled = true;
}
下面是我的JavaScript文件中的原始代码
if ($("input:radio[name='Swelling']:checked").length > 0) {
var isChecked = document.getElementById("SwellingYes").checked;
if (isChecked === true)
{
document.getElementById('Left').disabled = false;
let isLeft = document.getElementById('Left').checked;
document.getElementById('Right').disabled = false;
let isRight = document.getElementById('Right').checked;
document.getElementById('Both').disabled = false;
let isBoth = document.getElementById('Both').checked;
if (isLeft && isRight) {
alert('Hello 1');
document.getElementById('Both').checked = false;
document.getElementById('Both').disabled = true;
}
if (isBoth) {
document.getElementById('Left').checked = false;
document.getElementById('Right').checked = false;
document.getElementById('Left').disabled = true;
document.getElementById('Right').disabled = true;
}
}
}
我不确定这是否应该是一个注释,但在页面加载时,您的代码只检查它是否被检查过一次。如果您希望它正常工作,您可能希望附加一个事件或添加一个循环 您需要监听每个复选框的
change
事件,然后运行代码,如下所示:
document.addEventListener('DOMContentLoaded',函数(){
Array.prototype.slice.call(document.queryselectoral('input[type=“checkbox”])).forEach(函数(checkbox){
复选框.addEventListener('change',function(){
document.getElementById('Left')。disabled=false;
var isLeft=document.getElementById('Left')。选中;
document.getElementById('Right')。disabled=false;
var isRight=document.getElementById('Right')。选中;
document.getElementById('Both')。disabled=false;
var isBoth=document.getElementById('Both')。已选中;
if(isLeft==true&&isRight==true){
警报(“你好1”);
document.getElementById('Both')。checked=false;
document.getElementById('Both').disabled=true;
}
});
});
});代码>
左:
正确的:
两者:
请始终添加与您的问题相关的所有代码。在本例中,您询问的是有关复选框的问题,因此请包括HTML。根据您的问题,我相信您也希望检查,还是不检查?我看不到任何事件处理程序,因此不确定它将如何触发。这将有助于:我同意您的看法。一定有一件事。我目前的代码逻辑只检查复选框是否被选中。选中“左”和“右”复选框时,将触发一个事件,该事件将禁用标签“两者”的复选框。我不知道如何才能做到这一点。这应该是一个评论。我知道你还没有足够的代表来做这件事,但你会发现应该是评论的答案会被否决。专注于发布高质量的答案,直到你获得评论特权。这非常有帮助。这也必须是维切维萨。当我们选择两者时-当我们选择“两者”时,应该禁用左和右标签;应该禁用左侧和右侧。@goofyui,已添加到您的请求中。谢谢您的帮助。。我只是觉得很难在我现有的代码中添加您的逻辑。我已经在帖子中添加了我的现有代码,如果您能查看并建议我,我将非常有帮助。非常感谢ryan。。我的问题解决了。。谢谢