Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中处理条件复选框选择?_Javascript - Fatal编程技术网

如何在JavaScript中处理条件复选框选择?

如何在JavaScript中处理条件复选框选择?,javascript,Javascript,我们有三个复选框,分别为左、右和右。 选择“左”和“右”时,应同时禁用这两个选项 但是,在检查左右两侧时;两者的复选框均未禁用。(或)警报(“你好1”)未触发 document.getElementById('Left').disabled = false; var isLeft = document.getElementById('Left').checked; document.getElementById('Right').disabled = false; var isRight =

我们有三个复选框,分别为左、右和右。 选择“左”和“右”时,应同时禁用这两个选项

但是,在检查左右两侧时;两者的复选框均未禁用。(或)警报(“你好1”)未触发

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。。我的问题解决了。。谢谢