0
<script type="text/javascript">
    function marcarJob(source) 
    {
        checkboxes=document.getElementsByTagName('input');
        for(i=0;i<checkboxes.length;i++)
        {
            if(checkboxes[i].type == "checkbox") 
            {
                checkboxes[i].checked=source.checked;
            }
        }
    }

    function marcarDeproc(source) 
    {
        checkboxes=document.getElementsByTagName('input');
        for(i=0;i<checkboxes.length;i++) //record all controls
        {
            if(checkboxes[i].type == "checkbox") 
            {
                checkboxes[i].checked=source.checked;
            }
        }
    }

    function marcarEs(source) 
    {
        checkboxes=document.getElementsByTagName('input');
        for(i=0;i<checkboxes.length;i++)
        {
            if(checkboxes[i].type == "checkbox") 
            {
                checkboxes[i].checked=source.checked; // (mark/unmark all)
            }
        }
    }
</script>

它的方式是,当我选中一个顶部复选框时,会选中所有复选框。

我需要他们在列中点亮。如果第一个被选中,其他的也必须被选中/取消选中,按列排序,列的第一个复选框就像“全选”但仅适用于该列。

4

1 回答 1

0

首先要注意的是,您正在使用 tagName 访问复选框,它会找到页面上的所有复选框。

您需要创建具有相同名称的单列复选框,如下所示:

<input type="checkbox" name="column1_checkAll" onclick="javascript: checkUncheckAll('column1', this);"/>
<input type="checkbox" name="column1_checkbox" id="chk1" /> 
to 
<input type="checkbox" name="column1_checkbox" id="chkn" />

并添加以下 javascript 以选中/取消选中单列的所有复选框。

function checkUncheckAll(columnNo, checkboxObject){
    if(checkboxObject){ // Check for null IE
        var checkStatus = checkboxObject.checked; // CheckAll checked or unchecked status
        var columnName = columnNo+'_checkbox';
        var allCheckboxes = document.getElementsByName(columnName);             

        for(var i= 0; i < allCheckbox.length; i++){
            allCheckboxes[i].checked = status;
        }
    }
}
于 2013-06-29T13:30:05.407 回答