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)
Ihr Code funktioniert gut, siehe https://jsfiddle.net/aL3f4w9n/ –