2017-03-07 83 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"); 
}); 

有了这个,我选择的所有复选框在表中,但你可以从任一选择限制你的选择一个共同的祖先或在你想要的复选框上添加一个类或添加一个特殊的属性。