2017-12-13 3 views
0

데이터 테이블이 있는데 그 안에 쉼표가있는 필터 문자열을 사용하여 행을 필터링하려고합니다.쉼표를 사용하면 jQuery 데이터 테이블 필터링이 작동하지 않습니다.

이 데이터 테이블의 행 중 하나입니다 :

User logged in from 1.1.1.1, agent Mozilla/2.0

나는 위의 행이 검색 결과에 표시 1.1.1.1 사용하여 필터링 할 때. 그러나 1.1.1.1,을 사용하여 필터링을 시도하면 실패하고 위의 행이 나타나지 않습니다.

나는 enabling/disabling 정규식, 아무 소용이 스마트 필터링 등을 시도했다.

업데이트 : 내가 필터링이 코드

이되어 그들의 comma (,)이 행에 당신의 문자열 검색이 어쩌면 당신이 작업 검색 정규식

this.$('.table-filter-field').on('input.my_datatable', function filterListener() { 
       $($(this).data('table')).dataTable().fnFilter(this.value); 
    }); 
+0

은 쉼표로 구분되는 js?입니다. 어떤 오류? – zod

+0

@zod 아니요, 오류가 없습니다 – user2133404

+0

쉼표 앞에 :-) – zod

답변

0

경우이다 아프게하지잘 응답하지 않으면 행 데이터 검색을위한 많은 프로젝트에서 작동하는 다음 코드를 확인할 수 있습니다.

$('#search_field').keyup(function() { // Search field keyup event.you can use other event instead. 

    var rex = new RegExp($(this).val(), 'i'); 
    $('.yourtable tbody tr').hide(); 
    $('.yourtable tbody tr').filter(function() { 
     return rex.test($(this).text()); 
    }).show(); 

}) 
0

굵게 표시된 태그는 검색이 작동하지 않게합니다. 나는이 바이올린에 위의 방법을 사용 Strip HTML tags from filter with custom sType

:

이 SO 질문을 참조 https://jsfiddle.net/98Lecvx2/13/

이 키 코드 :

"aoColumnDefs": [ 
    { "aTargets": [0], 
     "mRender": function (data, type, full) { 
      if (type === 'filter') { 
       return data.replace(/(<([^>]+)>)/ig,""); 
      } 
      return data; 
     } 
    } 
] 

참고 코드 만 일에 기록 된 것을 첫 번째 열에. 첫 번째와 두 번째 열이 반전 된 다른 행을 추가했습니다 (두 번째 열은 <b> 1.1.1.1 </b >). 필터에 표시되지 않습니다. 모든 열에 HTML이 있고 HTML을 모두 무시해야하는 경우 aTargets 문자열을 포함해야합니다 (예 : [0,1]).

관련 문제