列复选框,按列检查/取消选中

时间:2013-06-24 14:38:28

标签: javascript html checkbox

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

当它检查其中一个顶部复选框时检查所有复选框。

我需要他们在列中点亮。如果选中第一个,则还必须选中/取消选中其他的,按列排序,列的第一个复选框类似于“SELECT ALL”,但仅适用于列。

1 个答案:

答案 0 :(得分: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;
        }
    }
}