2016-07-29 20 views
0

das ist mein Szenario: ich eine Datentabelle haben, dass ich auf diese Weise initialisieren:JQuery Datentabellen Spalte suchen Fall unempfindliche

invoicesDataTable = $('#invoicesDataTable').DataTable({ 

       processing: true, 
       serverSide: true, 
       searchDelay: 1000, 
       search: { 
        caseInsensitive: true 
       }, 
       ajax: { 
        type: 'GET', 
        url: '{!! route("admin.invoice.filterData") !!}', 
        dataSrc: function (response) { 
         return response.data; 
        } 
       }, 
//    aLengthMenu: [ [ 50, 100, 150, 200, -1 ], [ 50, 100, 150, 200, 'All' ] ], 
       columns: [ 
        {data: 'document_number', name: 'invoices.document_number', orderable: false}, 
        {data: 'document_type', name: 'invoices.document_type', orderable: false}, 
        {data: 'tax_regime', name: 'invoices.tax_regime', orderable: false}, 
        {data: 'auction_id', name: 'auctions.auction_id', orderable: false}, 
        {data: 'business_name', name: 'customers.business_name', orderable: false}, 
        {data: 'total_amount', name: 'invoices.total_amount', orderable: false}, 
        {data: 'datetime_invoice', name: 'invoices.datetime_invoice', orderable: false}, 
        {data: 'actions', name: 'actions', orderable: false, searchable: false} 
       ], 
      }); 

Nach der Initialisierung ich auf jeder Spalte auf diese Weise die Suche hinzufügen:

$('#invoicesDataTable thead th').each(function() { 
      var title = $(this).text(); 
      $(this).html('<input type="text" style="width:100%;" placeholder="' + title + '" />'); 
     }); 

     invoicesDataTable.columns().every(function() { 
      var that = this; 
      $('input', this.header()).on('keyup change', function() { 
       if (that.search() !== this.value) 
        that.search(this.value, false, true, true).draw(); 
      }); 
     }); 

Es funktioniert korrekt, außer für Groß- und Kleinschreibung. Wenn ich eine Spalte mit einem Wert wie "John" habe und ich nach "John" suche, zeigt es mir nicht die Zeile mit "John". Es gibt eine Möglichkeit, es funktioniert zu machen? (Die globale Suche funktioniert einwandfrei, wenn die Groß-/Kleinschreibung nicht beachtet wird)

+0

Ihr Code funktioniert gut, siehe https://jsfiddle.net/aL3f4w9n/ –

Antwort

0

Vergleichen Sie alle Groß- oder Kleinbuchstaben.

Eg .:

if (that.search().toLowerCase() !== this.value.toLowerCase()) 

oder

if (that.search().toUpperCase() !== this.value.toUpperCase()) 
+0

, die nicht richtige Antwort ist, diese Linie nur Marken sicher, dass der Wert in dem Textfeld geändert wurde. –