2013-07-20 108 views
0

我已經被生成爲項目的列表:刪除選中複選框項目進行選擇的所有驗證

<input type="checkbox" name="sacb" onchange="selAll();" title="select all"/> 
    <?php 
    while($row = mysql_fetch_array($res)){ 
    echo "<div><input type='checkbox' name='cb' value='$row[id]'>$row[item]</div>"; 
    } 
?> 

腳本

function selAll(){ 
    var s = document.form.sacb; 
    var t = document.form.cb; 
    for(var i=0; i<t.length; i++){ 
    t[i].checked = s.checked; 
    } 
} 

這是運作良好選擇/取消選擇所有複選框。

我想提交此表單,其中多個/所有選定的項目將被刪除。但我沒有得到所有選中的複選框。我已經搜查,發現我需要更換我的PHP代碼:

<input type='checkbox' name='cb[]' value='$row[id]'>$row[item] 

但只要我做到這一點,腳本未能選出所有複選框。如何解決這個問題呢?任何解決方案

回答

1

不能使用點表示法來訪問與名括號中的元素,所以你必須使用的元素集合

function selAll(){ 
    var s = document.form.sacb; 
    var checkboxes = document.form.elements['cb[]']; 
    for (var i = 0; i < checkboxes.length; i++) { 
     checkboxes[i].checked = s.checked; 
    } 
} 
檢索它們
1

你可以從下面的JavaScript

更新複選框

請添加代碼選擇由選定陣列的數量在簡單的JavaScript 我這個例子中,無論是選擇我已經使用jQuery的先手複選框的陣列和檢查或不

var field, fields = $('.edit_user_notifi :checkbox'), i = fields.length; 
     var notification_status = ''; 
     while (i--) { 
      field = fields[i]; 
      if(notification_status == '') 
      { 
       if (field.checked) { 
        notification_status = field.id+'~1'; 

       } else { 
        notification_status = field.id+'~0'; 
       } 
      }else{ 

       if (field.checked) { 
        notification_status = notification_status +','+ field.id+'~1'; 
       }else{ 
        notification_status = notification_status +','+ field.id+'~0'; 
       } 

      } 
     } 
拿到

只是改變一點邏輯來獲得簡單的JavaScript或如果將是很好,如果你使用jQuery。