0

我在 3 个不同的页面中有 3 个复选框,我想一次选中一个复选框,这意味着首先所有 3 个都未选中,如果我选中了一个复选框,剩下的 2 个复选框应该被禁用。

我使用数组以 1 和 0 的形式将每个复选框值存储在 3 个不同的文本文件中。现在有一页我正在阅读复选框值和基于条件的尝试禁用复选框但它不起作用。

我试过这个

复选框html代码:

input type="checkbox" id="cb1" name="check[0]" value="1" />

java脚本:

<script type="text/javascript">

var cb1 =document.getElementById("cb1");
var cb2 = "<?php echo $cb2_arr[5] ?>" ; //cb2=1 or 0
var cb3 = "<?php echo $cb3_arr[6] ?>"; //cb3=1 or 0

if(cb2 ==1 || cb3 == 1){
cb1.disabled = true;
}else{
cb1.disabled = false;
}
</script>

cb1.disabled =真;对我来说它不起作用我在它的上方和下方保留了警报语句,只显示上方

请帮助我如何设置禁用属性,谢谢

4

2 回答 2

2

试试这个禁用并删除禁用,

 if ($('#cb3').is(':checked') || $('#cb2').is(':checked')) {
         $('#cb1').setAttribute('disabled', true);
}else{
         $('#cb1').setAttribute('disabled', false);
}
于 2020-09-17T08:00:57.790 回答
0

你需要检查input1.value == "",而不是简单地检查input1 == ""

您还需要最初触发您的方法,并在每次选择列表更改值时运行它。

给函数起个名字

function setCheckState(evt) {
    if (input1.value == "" || input2.value == "") {
        result.disabled = true;
    } else {
        result.disabled = false;
    }
}

添加事件监听器

input1.addEventListener('change', setCheckState);
input2.addEventListener('change', setCheckState);
// Fire the method to get the initial checkbox state set

setCheckState();

最后,您可以将 if() 语句简化为简单的赋值...

function setCheckState(evt) {
    result.disabled = input1.value == "" || input2.value == "";
}
于 2020-09-17T07:52:41.220 回答