2015-08-31 54 views
0

我正在使用jQuery DataTables並嘗試檢索是否對特定列的所有行選中了複選框。這是嘗試根據不同的列值設置自定義過濾。這裏是一個小的代碼示例:jQuery DataTables:獲取特定列中的複選框值

$.fn.dataTableExt.afnFiltering.push(function(oSettings, aData, iDataIndex){ 
    //var checkedFilters = Here I get any of my checkboxes out side of datatables that im using to filter. 

    if(checkedFilters.length{ 
     result = false; 
     $(checkedFilters).each(function(i, obj){ 
      var $value = ''; 
      var $column = 0; 

       switch(obj){ 
        case 'Monday': 
        case 'Tuesday': 
        case 'Wednesday': 
        etc, etc.: 
        $value = $obj; 
        $column = aData[4]; //This works fine for getting data that is NOT a checkbox 
        break; 
        case 'Disabled': // This one is a column of checkbox values 
        $value = true or checked, or however i need to compare the data; 
        $column = aData[17]; //unable to get at the state of the checkbox this way. 
        break; 

       } 

       if ($column === $value) { 
         result = true; 
         return false; 
        } 


       return result; 

       if(!checkedFilters.length){ 
        return true; 
       } 
       return false; 
      } 
     }); 
    }); 

我感謝您的幫助!謝謝!

這是第17列顯示的HTML:

<td id="isDisabled"> //Checked 
    <input checked="checked" class="check-box" disabled="disabled"  type="checkbox" /> 
</td> 

<td id="isDisabled"> //Un-checked 
    <input class="check-box" disabled="disabled" type="checkbox" /> 
</td> 
+0

可以請'case'禁用'後添加'console.log(aData [17])':'併發布結果? –

+0

@ Gyrocode.com感謝您的回覆。在第17列上使用aData []時,數據會回到空白。 – Mikem

回答

0

我最終什麼事做在這一個被更新我的視圖模型獲得一個字符串值,而不是一個布爾值複選框的。所以,現在當我查詢數據庫,我值轉換爲字符串「真」或「假」 ......這樣我可以讀出值以同樣的方式,我爲週一 - 週日值:

if(checkedFilters.length{ 
    result = false; 
    $(checkedFilters).each(function(i, obj){ 
     var $value = ''; 
     var $column = 0; 

      switch(obj){ 
       case 'Monday': 
       case 'Tuesday': 
       case 'Wednesday': 
       etc, etc.: 
       $value = $obj; 
       $column = aData[4]; //This works fine for getting data that is NOT a checkbox 
       break; 
       case 'Disabled': // Converted this from boolean to string "True" or "False" 
       $value = "True" 
       $column = aData[17]; // Now returns "True" or "False" 
       break; 
      } 

      if ($column === $value) { 
        result = true; 
        return false; 
       } 


      return result; 

      if(!checkedFilters.length){ 
       return true; 
      } 
      return false; 
     } 
    }); 
}); 

我不得不花10分鐘左右的時間更新我的視圖模型,但我不需要做其他任何事情。我希望這可以幫助任何遇到此問題的人。