通过单击一个复选框,应禁用另一个复选框

时间:2019-05-27 11:19:50

标签: javascript checkbox

我有两列带有复选框的复选框,当第二列中的所有复选框均被选中时,问题出在这里,客户端希望在选中复选框的一列时禁用第二列或抛出警报消息以进行检查一次只有一列?

function SelectAll1(headerchk, gridId) {

        var gvcheck = document.getElementById(gridId);
        var i, j;
        if (headerchk.checked) {
            for (i = 0; i < gvcheck.rows.length - 1; i++) {
                var inputs = gvcheck.rows[i].getElementsByTagName('input');
               for (j = 1; j < inputs.length; j++) {
                 if (inputs[j].type == "checkbox") {
                        inputs[j].checked = true;
                    }
                }
            }
        }
        else {
            for (i = 0; i < gvcheck.rows.length - 1; i++) {
                var inputs = gvcheck.rows[i].getElementsByTagName('input');
                 for (j = 1; j < inputs.length; j++) {
                   if (inputs[j].type == "checkbox") {
                        inputs[j].checked = false;
                    }
                }
            }
        }
    }

你可以ch

2 个答案:

答案 0 :(得分:0)

如果没有HTML,我真的不知道您要做什么,但是您可以从这里开始。

final ToggleGroup toggleGroup = new ToggleGroup();

toggle1.setToggleGroup(toggleGroup);
toggle2.setToggleGroup(toggleGroup);
toggle3.setToggleGroup(toggleGroup);
var selected = $('.check:checked').length;

if (selected >= 1) {
  $('.check').prop('disabled', true);
}

答案 1 :(得分:0)

根据给出的小信息,我认为这是

SelectAll1清除或设置第1列中的所有复选框。
SelectAll2清除或设置第2列中的所有复选框。
headerchk是一个单击框,清除或设置所有复选框。

执行此更改:

  1. 在代码中SelectAll1( headerchk 的每一行之后,调用 gridId ),将其更改为{{1} } headerchk SelectAll1( gridId .checked

  2. 在该行下方插入一个否定的另一行: ) headerchk SelectAll2(! gridId checked

  3. 在代码中) headerchk 的每一行之后,调用 gridId SelectAll2(,将其更改为{{1} } headerchk ) gridId SelectAll2(

  4. 在该行下方插入一个否定的另一行: .checked headerchk ) gridId SelectAll1(!

您只向我显示了.checked的代码,所以我假设)是相同的,如果您还不知道如何使它们有所不同。如果这不是事实,请纠正我!

  1. 通过将功能SelectAll1更改为以下内容来继续:

SelectAll2

通过将条件移动到本身为true或false的赋值来消除else-部分和if。 SelectAll1部分移至函数外部。


  1. function SelectAll1(header_checked, gridId) { var gvcheck = document.getElementById(gridId); var i, j; for (i = 0; i < gvcheck.rows.length - 1; i++) { var inputs = gvcheck.rows[i].getElementsByTagName('input'); for (j = 1; j < inputs.length; j++) { if (inputs[j].type == "checkbox") { inputs[j].checked = header_checked; } } } }

  2. 中进行相同的更改
  3. 测试它是否有效并向我报告!