【问题标题】:Filter column only if field is a number (datatables)仅当字段为数字时过滤列(数据表)
【发布时间】:2017-10-06 10:54:59
【问题描述】:

我正在使用 DataTables jQuery 插件来显示从我的服务中检索到的数据;我有一种情况,我必须在列中输入一个数字并根据该数字进行过滤,该列中的字段可能包含第一个字符作为字母。我想过滤列而不获取带有字母的字段;前任: 如果我的列中有如下值:B123 - C753 - 356 我想输入 3 并返回 只有 356;这是可能的吗?

下面是我的代码:

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 - 356 因为它们都包含 3 .

编辑:

下面是我的 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>

【问题讨论】:

  • 您也可以发布您的 HTML 吗?
  • 所以您想检查第 2 列的值并获取只有数字的值?
  • 是的,这正是我的问题
  • 立即查看答案

标签: jquery filter datatable datatables


【解决方案1】:
var x = //value of the column;
if(Math.floor(x) == x && $.isNumeric(x)){
//do the code
}

你得让他们一个一个循环,检查上面的代码,把数字弄出来。

编辑:也许这就是你想要达到的目标。只需单击过滤器按钮即可查看。 DEMO

【讨论】:

  • 没错,但是如何获取这个函数中列的值呢?
  • 能否也分享一下html。我相信如果你这样做会很简单。
  • 这非常适合作为搜索.. 但它不能与我上面的代码一起使用并为我绘制表格。搜索函数和draw被调用一次,孔表被过滤和绘制。
猜你喜欢
  • 1970-01-01
  • 2021-01-03
  • 1970-01-01
  • 2017-09-03
  • 1970-01-01
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多