簡體   English   中英

通過單擊一個復選框,應禁用其他復選框

[英]By clicking one checkbox other checkbox should be disable

我檢查了一列時有2列復選框,所有相應的列都在第二列同樣檢查但是問題在這里,客戶端想要選中一列復選框然后第二列將被禁用或拋出警報消息只檢查一列一次?

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;
                    }
                }
            }
        }
    }

你可以

如果沒有HTML,我真的不知道你要做什么,但這是一個你可以開始建立的開始。

 var selected = $('.check:checked').length; if (selected >= 1) { $('.check').prop('disabled', true); } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="checkbox" class="check" checked="checked"> <input type="checkbox" class="check"> <input type="checkbox" class="check"> 

根據給出的小信息,我假設:

SelectAll1清除或設置第1列中的所有復選框。
SelectAll2清除或設置第2列中的所有復選框。
headerchk是一個復選框,當點擊清除或設置全部。

做這個改變:

  1. SelectAll1( headerchkgridId )的代碼中的每一行之后,將其更改為SelectAll1( headerchk .checkedgridId )

  2. 插入這條線下面的另一行以否定: SelectAll2(! 。headerchk checked ,gridId )

  3. SelectAll2( headerchkgridId )的代碼中的每一行之后,將其更改為SelectAll2( headerchk .checkedgridId )

  4. 在此行下方插入另一行,並帶有否定: SelectAll1(! headerchk .checkedgridId )

你只向我展示了SelectAll1的代碼,所以我假設當你還不知道如何使它們與眾不同時, SelectAll2是相同的。 如果這不是事實,請糾正我!

  1. 繼續將SelectAll1函數SelectAll1為以下內容:

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;
            }
        }
    }
}

else-part和if通過將條件移動到eeher true或false的賦值來消除。 .checked部分移動到函數外部。


  1. SelectAll2執行相同的更改

  2. 測試它是否有效並向我報告!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM