2009-01-13 37 views
-1

我已经有一个表格,上面有一堆复选框,我想提供一个“全选”链接/按钮。如何为网页表单创建“全​​选”链接?

我使用下面的代码,但是当它运行时,它会在页面上拾取一些单选按钮,并检查/取消选中这些按钮。我该如何解决?

var check = 0; 
function doNow() 
{ 
    void(d=document); 
    void(el=d.getElementsByTagName('INPUT')); 
    for(i=0;i<el.length;i++) 
    { 
     if(check == 0) 
      void(el[i].checked=1) 
     else 
      void(el[i].checked=0) 
    } 
    if(check == 0) 
     check = 1; 
    else 
     check = 0; 
} 
+0

注:我做了一个完整的重写该问题以删除HTML /脚本,因为该网站似乎对帖子中的HTML感到窒息,并且问题没有得到解决。 – Rob 2009-01-13 07:25:45

回答

7

您将要检查元素的类型,以确保您不会意外地检查错误类型的输入。

基本例如:

function checkAll(toggle) { 
    var inputs = document.getElementsByTagName('input'); 
    for(var i = 0; i < inputs.length; i++) { 
     if(inputs[i].type == 'checkbox') { 
      inputs[i].checked = toggle; 
     } 
    } 
} 

您可能需要添加其他检查,如只作用于复选框在一定的逻辑“组”,例如。

1

您可以检查输入的类型:

if(el[i].type == 'checkbox') { 
    el[i].checked = true; 
} 
-1

您可以将当前的状态作为函数的性质以及检查型

function checkAll() { 
    var all = document.getElementsByTagName('input'); 
    for(var i = 0, l = all.length; i < l; i++) { 
     if(all[i].type == 'checkbox') { 
      all[i].checked = checkAll.checked; 
     } 
    } 
    checkAll.checked = !checkAll.checked; 
} 
checkAll.checked = true; 
+0

在if语句中输入错字。它有一个=而不是2 – epascarello 2009-01-13 15:02:54