JS,选择特定表单中的所有复选框,页面上的几个表单

时间:2011-07-28 17:49:51

标签: javascript checkbox

我有一个包含X表单的页面,每个表单中都有许多复选框。 当我点击一个复选框(如下所示)时,如何实现这一目标,那么将选择该特定表格中的所有复选框? (如果......未经检查,则取消选中):

我尝试了以下操作,但它不起作用(名称=“selectfile []”不得更改): 我不是JS王:(

function selectAll(){ 
    t=document.forms[0].length; 
    for(i=1; i<t-1; i++) document.forms[0][i].checked=document.forms[0][0].checked; 
} 

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<input type='checkbox' name='checkall' style="margin-right: 15px;" onclick='selectAll(this.form.selectfile[]);'>

<input type="checkbox" name="selectfile[]" value="<? echo $file_fetch['id']; ?>" style="margin-right: 15px;" />
<input type="checkbox" name="selectfile[]" value="<? echo $file_fetch['id']; ?>" style="margin-right: 15px;" />
<input type="checkbox" name="selectfile[]" value="<? echo $file_fetch['id']; ?>" style="margin-right: 15px;" />
<input type="checkbox" name="selectfile[]" value="<? echo $file_fetch['id']; ?>" style="margin-right: 15px;" />
</form>

1 个答案:

答案 0 :(得分:3)

<script type="text/javascript">
    function selectAll(val) {
        var checks = document.getElementsByName("selectfile[]");
        for (var i = 0; i < checks.length; i++) {
          checks[i].checked = val;
        }
    }
</script>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<input type='checkbox' name='checkall' style="margin-right: 15px;" onChange="selectAll(this.checked)">

<input type="checkbox" name="selectfile[]" value="<? echo $file_fetch['id']; ?>" style="margin-right: 15px;" />
<input type="checkbox" name="selectfile[]" value="<? echo $file_fetch['id']; ?>" style="margin-right: 15px;" />
<input type="checkbox" name="selectfile[]" value="<? echo $file_fetch['id']; ?>" style="margin-right: 15px;" />
<input type="checkbox" name="selectfile[]" value="<? echo $file_fetch['id']; ?>" style="margin-right: 15px;" />
</form>

您可以在此处测试javascript部分:http://jsfiddle.net/protron/2t987/


编辑:根据您对多个表单和所有具有相同名称的复选框的评论,我更新了代码并在函数中添加了一个额外的参数来指示表单索引,然后使用{ {1}}获得支票。这似乎是不使用jQuery的唯一简单方法,虽然恕我直言,但这种方式更容易出错。

此处代码:http://jsfiddle.net/protron/2t987/1/