2017-10-06 30 views
0

我使用DataTables jQuery插件来显示从我的服务中检索到的数据;我有一个情况,我必须输入一个数字并根据这个数字在一个字段中可能包含第一个字符的字段进行筛选。我想过滤不用字母的字段;例如: 如果我有像我的列值:B123 - C753 - 我想进入并返回只有356;这是可能的吗?仅当字段是数字时才过滤列(datatables)

下面是我的代码:

function filterMySecondColumn() { 
    $('#my_tbl').DataTable().column(2).search(
     $('#My_Val').val(), // my value to be filtered => it is 3 in the example 
      false, 
      true 
     ).draw(); 
} 

与上面的代码:返回的结果将是B123 - C753 - ,因为它们都含有。

编辑:

下面是我的HTML;当我点击按钮过滤器时,将会调用多个要过滤的功能。其中之一是'filterMySecondColumn'。请注意,我的表格是通过使用ajax的服务填充的,但下面是一个模板。

<table id="tblHeaderHomePage" class="tblHeaderHomePage" cellspacing="0" border="0"> 
    <tbody> 
     <tr id="filter_col1" data-column="0"> 
      <td class="FilterTdTitle"> 
       Column 0 
      </td> 
      <td class="FilterTdContent"> 
       <input type="text" autocomplete="off" class="form-control input-sm HomePage_Filter_Input" 
        id="col0_filter" /> 
      </td> 
     </tr> 
     <tr id="filter_col2" data-column="1"> 
      <td class="FilterTdTitle"> 
       Column 1 
      </td> 
      <td class="FilterTdContent"> 
       <input type="text" autocomplete="off" class="form-control input-sm HomePage_Filter_Input" 
        style="width: 85px" id="DateFrom" /> 
       <input type="text" autocomplete="off" class="form-control input-sm HomePage_Filter_Input" 
        style="width: 85px" id="DateTo" /> 
      </td> 
     </tr> 
     <tr id="filter_col3" data-column="2"> 
      <td class="FilterTdTitle"> 
       Column 2 
      </td> 
      <td class="FilterTdContent">         
       <input type="text" class="form-control input-sm HomePage_Filter_Input" id="col2_filter" /> 
      </td> 
     </tr> 
     <tr id="filter_col4" data-column="3"> 
      <td class="FilterTdTitle"> 
       Column 3 
      </td> 
      <td class="FilterTdContent"> 
       <input type="text" autocomplete="off" class="form-control input-sm HomePage_Filter_Input" 
        id="col3_filter" /> 
      </td> 
     </tr> 
     <tr id="filter_col5" data-column="4"> 
      <td class="FilterTdTitle"> 
       Column 4 
      </td> 
      <td class="FilterTdContent"> 
       <select class="BAN_Select_Home" id="Status_Select"> 
        <option value="All">All</option>          
       </select> 
      </td> 
     </tr> 
    </tbody> 
</table> 

<div class="BAN_HomePage_Filter_buttons_div"> 
    <input type="button" class="BAN_HomePage_Filter_buttons" onclick="filter()" value="Filter" />      
</div> 

<table id="My_tbl_init" class="display nowrap" cellspacing="0" width="100%"> 
<thead> 
    <tr> 
     <th> 
      Column 0 
      </th> 
      <th> 
       Column 1 
      </th> 
      <th> 
       Column 2 
      </th> 
      <th> 
       Column 3 
      </th> 
      <th> 
       Column 3 
      </th> 
     </tr> 
    </thead> 
    <tbody id="My_tbl"> 

    <tr> 
     <td> 
      test1 
     </td> 
     <td> 
      06/10/2017 
     </td> 
     <td> 
      B123 
     </td> 
     <td> 
      Opened 
     </td>      
    </tr> 

    <tr> 
     <td> 
      test2 
     </td> 
     <td> 
      06/10/2017 
     </td> 
     <td> 
      C789 
     </td> 
     <td> 
      closed 
     </td>      
    </tr> 

    <tr> 
     <td> 
      test3 
     </td> 
     <td> 
      06/10/2017 
     </td> 
     <td> 
      123 
     </td> 
     <td> 
      closed 
     </td>      
    </tr> 

</tbody> 
</table> 
+0

你还可以发布你的HTML吗? –

+0

所以你想检查列2的值,并获得唯一的数字? –

+0

是的,这就是我的问题 –

回答

1
var x = //value of the column; 
if(Math.floor(x) == x && $.isNumeric(x)){ 
//do the code 
} 

你得让他们进入循环一个接一个,与上面的代码检查,并获得数字一出来。

编辑:也许这就是你想要的。只需点击过滤按钮,看看。 DEMO

+0

没错,但是如何获得该函数中列的值? –

+0

你可以请分享HTML以及。我相信,如果你这样做会很简单。 –

+0

这完美的作为一个搜索..但它不能与我的代码上面,并绘制我的表。搜索功能和绘图被调用一次,并且过滤和绘制孔表。 –

相关问题