使用数据表我想只用第一个字母搜索

时间:2016-03-23 08:31:47

标签: javascript jquery html datatable

我有一个包含所有者名字的表。用户希望能够从病房的第一个字母对表格进行排序。

示例:

1)Saurabh Gujarani 2)Testsa

通过搜索" Sa"应该只列出 - Saurabh Gujarani

但在我目前的代码中,它显示了两者。

<script type="text/javascript">
$(document).ready(function () {
    $('#custom_2').dataTable({
       "aoColumnDefs": [
  { "bSearchable": false, "aTargets": [ 0,1,4,5,6,7,8 ] }
] } );
});
</script>

2 个答案:

答案 0 :(得分:2)

您可以按如下方式修改DataTable的默认搜索功能。

//Declare table
var table = $('Table Selector').DataTable();

//on search box keyup
$('input[type = search]').on( 'keyup', function () {

    //start check from first character
   table.search( '^' + this.value, true, false).draw();
}); 

请参阅工作演示https://jsfiddle.net/Prakash_Thete/b577yxa3/1/

答案 1 :(得分:0)

我用它来让用户能够在元素周期表中搜索元素。

var searchString = document.getElementById("search").value; //The user input field
    if (searchString !== "") {
    var cols = document.querySelectorAll('#yourTableID td'), colslen = cols.length, i = -1;
	while(++i < colslen){
        if(cols[i].id.indexOf(searchString)>-1){
            //Do something to the tds that match the searchstring (acces with "cols[i]")
        } else {
           //Hide the tds that does not match the searchstring (eg. cols[i].style.display = "none";)

我将搜索字符串与<td>的ID匹配,但我认为您可以替换.id。在if语句中,如果要搜索td中的文本,则使用innerHTML或value。

希望这有帮助!