如何在一次点击中选择所有复选框?

时间:2014-02-18 12:52:50

标签: javascript

我试图在一次点击中选择所有的复选框值,几个月前我在另一个项目中使用了同样的东西,它工作正常,但现在它不起作用。

以下是代码:

<tbody> 
<span style="margin-left:0px;">Select All &nbsp;    <input type="checkbox"  name="foo"  onClick="checkall(this)">&nbsp;&nbsp;<input type="submit" value="delete" name="delete"></span>               
<?php
if ($allTemplates > 0): $sr = '1';
    while ($row = mysql_fetch_array($allTemplates)):

        ?>        
        <tr>
            <td class="text-center"><input type="checkbox" name="foo[]" value="<?php echo $row['id']; ?>" /><?php echo $sr; ?>. </td>
            <td class="hidden-phone" style='text-align:center;'><?php echo $row['on_date']; ?></td>
            <td class="hidden-phone" style='text-align:center;'><a  href="javascript:Show('#.php?id=<? echo $row['template_id']?>')"><?php echo $row['template_id']; ?></a></td>                        
            <td class="hidden-phone"><?php echo ucfirst($row['title']); ?></td>
            <td class="hidden-phone" style='text-align:center;'><a  href="javascript:Show('profile_lady.php?id=<? echo $row['user_id']?>')"><?php echo $row['user_id']; ?></a></td>
            <td class="hidden-phone" style='text-align:center;'><?php echo ucfirst($record['fname']) . ' ' . $record['lname']; ?></td>
        </tr>
        <?php
        $sr++;
    endwhile;
endif;

?>
</tbody>

这是我使用的功能:

<script language = "JavaScript" >
    function checkall(source) {
        checkboxes = document.getElementsByName('foo[]');
        for (var i = 0, n = checkboxes.length; i < n; i++) {
            checkboxes[i].checked = source.checked;
        }
    } 
</script>

3 个答案:

答案 0 :(得分:0)

试试这个

var elems= document.getElementsByTagName("input");
    for (var i =0; i < elems.length; i++){
        if (elems[i].type == 'checkbox')
            elems[i].checked = true;
    }

答案 1 :(得分:0)

用以下内容替换您的javascript:

<script language="JavaScript">
function checkall(source) {
  checkboxes = document.getElementsByName('foo[]');
  for(i=0,i< checkboxes.length;i++) {
  checkboxes[i].checked = source.checked;
  }
  }</script>

答案 2 :(得分:0)

你可以试试这个:

<script language="JavaScript">
function checkall(source) {
  checkboxes = document.getElementsByName('foo[]');
  if (checked == false) {
      checked = true
  }
  else {
      checked = false
  }
  for(var i=0, n=checkboxes.length;i<n;i++) {
      if(checkboxes[i].type== 'checkbox') {
          checkboxes[i].checked = checked;  
      }
  }
</script>