2010-11-16 56 views
0

我有一个全选框,其中当用户选中它时,它下面的所有项目都会被打勾。它在Firefox中正常工作,但不会在Chrome中执行“全部检查”功能。检查所有将无法在Chrome中工作,但在Firefox中工作

这是JS功能:

function Check(chk, num) 
{ 
    if(chk.value=="Check all"){ 
     for (i = 0; i <= num; i++){ 
      chk[i].checked = true ; 
     } 
     chk.value="UnCheck all"; 
    }else{ 

     for (i = 0; i <= num; i++){ 
      chk[i].checked = false ; 
     } 
     chk.value="Check all"; 
    } 
} 

HTML:

<form target="_blank" action="" method="post" id="myform" name="myform"> 
    <input type="checkbox" value="Check all" onclick="Check(document.myform.Product A, 9)" id="Fujitsu" name="Fujitsu"> Select All 
    <input type="hidden" value="1" name="product_id[1]"> 
    <input type="checkbox" value="Product 1" id="Product 1" name="product[1]">Product A -Product 1 
    <input type="hidden" value="2" name="product_id[2]"> 
    <input type="checkbox" value="Product 2" id="Product 2" name="product[1]">Product A -Product 2 
</form> 
+0

您需要发布调用此函数的代码!没有实现这个代码是没用的。 – mattbasta 2010-11-16 00:55:48

+0

我无法发布html代码吗? – anonymous 2010-11-16 01:51:51

+0

当然你可以... – ThiefMaster 2010-11-16 01:55:36

回答

0

对我来说,Firefox和铬崩溃的 “document.myform.Product A”。这里是你的代码稍微修改工作:

function Check(form, all, chk, num) 
{ 
    if(form[all].value=="Check all"){ 
     for (i = 1; i <= num; i++){ 
      form[chk + i].checked = true ; 
     } 
     form[all].value="UnCheck all"; 
    }else{ 

     for (i = 1; i <= num; i++){ 
      form[chk + i].checked = false ; 
     } 
     form[all].value="Check all"; 
    } 
} 

和HTML:

<form target="_blank" action="" method="post" id="myform" name="myform">- 
    <input type="checkbox" value="Check all" onclick="Check(document.myform, 'Fujitsu', 'Product_' , 2)" id="Fujitsu" name="Fujitsu"> Select All- 
    <input type="hidden" value="1" name="product_id[1]">- 
    <input type="checkbox" value="Product 1" id="Product_1" name="product[1]">Product A -Product 1- 
    <input type="hidden" value="2" name="product_id[2]">- 
    <input type="checkbox" value="Product 2" id="Product_2" name="product[1]">Product A -Product 2- 
</form> 

但是你可以做更清晰的代码做同样的事情:

function Check(form, action) 
{ 
    var l = form.getElementsByTagName("input"); 
    for (var i = 0; i < l.length; ++i) 
     if (l[i].type == "checkbox") l[i].checked = action; 
} 

和HTML:

<form target="_blank" action="" method="post" id="myform" name="myform">- 
    <input type="checkbox" value="Check all" onclick="Check(document.myform, this.checked)" id="Fujitsu" name="Fujitsu"> Select All- 
    <input type="hidden" value="1" name="product_id[1]">- 
    <input type="checkbox" value="Product 1" id="Product_1" name="product[1]">Product A -Product 1- 
    <input type="hidden" value="2" name="product_id[2]">- 
    <input type="checkbox" value="Product 2" id="Product_2" name="product[1]">Product A -Product 2- 
</form> 

这会更好,如果你使用了一个带有CSS选择器的库,比如jQuery。

相关问题