2010-11-16 47 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。

相關問題