2017-03-07 82 views
1

有沒有人知道如何通過選中特定列的第一個複選框來選擇(檢查)handsontable列中的所有複選框。我嘗試了所有可能的方法來完成它,但我無法通過任何方式來完成它。如何選擇列中的所有複選框?

下面是代碼,

function getCarData() { 
    return [ 
     { available: true,available2: true,available3: true, comesInBlack: 'yes'}, 
     {available: false,available2: true,available3: true,available3: true, comesInBlack: 'yes'}, 
     { available: true,available2: true,available3: true, comesInBlack: 'no'}, 
     {available: false,available2: true,available3: true, comesInBlack: 'yes'}, 
     { available: false,available2: true,available3: true, comesInBlack: 'no'} 
    ]; 
    } 

    var example1 = document.getElementById('example1'), 
    hot1; 

    hot1 = new Handsontable(example1, { 
    data: getCarData(), 
    colHeaders: ['Available','Available2','Available3'], 
    columns: [ 

     { 
     data: 'available', 
     type: 'checkbox' 
     },{ 
     data: 'available2', 
     type: 'checkbox' 
     },{ 
     data: 'available3', 
     type: 'checkbox' 
     } 
    ] 
    }); 
+0

你能否提供html並把它放在一些小提琴上? –

+0

請提交您的代碼以更好地理解問題 –

回答

0

無論Handsontable的,你可以使用document.querySelectorAll(「表輸入[類型=‘複選框’]」)來獲得所有入住的箱子,一個列表在一張桌子裏面。除了表格輸入[type =「checkbox」],您可以使用任何CSS選擇器,如字符串。

然後你需要做的是迭代它們並設置checked = true,就像這樣。

var checkboxes = document.querySelectorAll('table tr td input[type="checkbox"]'); 
for (var i = 0; i < checkboxes.length; i++) 
    checkboxes[i].checked = true; 
+0

@ZekeDroid:請問您可以用HOT表格幫助我嗎? – user4101343

0

這很簡單,如果你可以使用jQuery

<input type="checkbox" id="checkAll">Check All 
<hr /> 
<input type="checkbox" id="checkItem">Item 1 
<input type="checkbox" id="checkItem">Item 2 
<input type="checkbox" id="checkItem">Item 3 

$("#checkAll").click(function(){ 
    $('input:checkbox').not(this).prop('checked', this.checked); 
}); 
0

你並不需要一個循環。你可以加一個ID給您的支票的所有複選框(或名稱,如"input[name='check-all']"選擇它)是這樣的:

$(document).on("click", "#toggleCheck", function() { 
    $("table").find("input[type='checkbox']").prop("checked", "checked"); 
}); 

有了這個,我選擇的所有複選框在表中,但你可以從任一選擇限制你的選擇一個共同的祖先或在你想要的複選框上添加一個類或添加一個特殊的屬性。