【问题标题】:jQuery DataTables: Get checkbox value from specific columnjQuery DataTables:从特定列获取复选框值
【发布时间】:2015-08-31 20:12:04
【问题描述】:

我正在使用 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>

【问题讨论】:

  • 能否请您在case 'Disabled': 之后添加console.log(aData[17]) 并发布结果?
  • @Gyrocode.com 感谢您的回复。在第 17 列使用 aData[] 时,数据返回空白。

标签: jquery datatables


【解决方案1】:

我最终在这个上做的是更新我的视图模型以采用字符串值而不是布尔复选框值。所以现在当我查询数据库时,我将值转换为字符串“True”或“False”......这样我可以像周一 - 周日值一样读取值:

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 分钟左右的时间来更新我的视图模型,但我不需要做任何额外的事情。我希望这对遇到此问题的其他人有所帮助。

【讨论】:

    猜你喜欢
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    • 2017-07-28
    • 1970-01-01
    • 2010-11-20
    相关资源
    最近更新 更多