使用Checkbox过滤搜索php

时间:2013-09-10 07:26:45

标签: javascript codeigniter

我有关于何时搜索数据所有复选框都将被检查的问题。我想要的是我搜索数据的时候。然后必须检查数据。

例子我搜索“vin”这个词。只有vin必须检查/ true

这个词

这是我的HTML

<input />
<table >
    <tr>
        <th>Name</th>
        <th>Age</th>
    </tr>
</table>
<table class="AvailableGroupLab availGrpLabs avalLabs">
    <tr>
        <td><input type='checkbox'/></td>
        <td><span>wewe</span>

        </td>
        <td>16</td>
    </tr>
    <tr>
        <td><input type='checkbox' /></td>
        <td><span>Melvin</span>

        </td>
        <td>18</td>
    </tr>
    <tr>
        <td><input type='checkbox' /></td>
        <td><span>Marvin</span>

        </td>
        <td>20</td>
    </tr>
</table>

这是我的脚本

function filter(element) {
    var $trs = $('.AvailableGroupLab tr').hide();
    var regexp = new RegExp($(element).val(), 'i');

    var $valid = $trs.filter(function () {
        return regexp.test($(this).children(':nth-child(2)').text())
    }).show();
    $valid.find(':input:checkbox').attr("checked",true);

    $trs.not($valid).hide()
}

$('input:text').on('keyup change', function () {
    filter(this);
})

2 个答案:

答案 0 :(得分:1)

应清除其他input:checkbox已检查的属性。

$(element).val()是&#34;&#34;应该是假的还是假的?

像这样:

$trs.not($valid).hide().find(':input:checkbox').attr("checked",false);

答案 1 :(得分:0)

不确定这是否是您想要的......但您可以尝试使用:contains

function filter(element) {

var $trs = $('.AvailableGroupLab tr').hide(),
    $value = $(element).val();
  var $searchedElement = $("span:contains(" + $value + ")");
  $searchedElement.parents('tr')
                  .find('input:checkbox').prop('checked', true)
                  .end()
                  .show();
}

fiddle here