Zaimplementowałem jQuery tablesorter w moim projekcie.Sortownik tabel jQuery nie działa dla wartości pobranych przez AJAX
Moja tabela składa się z pól tekstowych wejściowych, z których niektóre są wypełniane przez ajax. Sortowanie tabel działa doskonale dla pól wejściowych wprowadzanych przez użytkownika, ale pola wejściowe zapełniane z bazy danych przy użyciu ajax nie sortują poprawnie.
Mój kod:
jQuery(function() {
jQuery('#tablesorter-demo').tablesorter({
widgets: ['zebra', 'stickyHeaders'],
headers: {
2: {
sorter: 'inputs'
},
3: {
sorter: 'inputs'
},
5: {
sorter: 'inputs'
}
}
});
});
jQuery.tablesorter.addParser({
id: 'inputs',
is: function (s) {
return false;
},
format: function (s, table, cell, cellIndex) {
var jQueryc = jQuery(cell);
// return 1 for true, 2 for false, so true sorts before false
if (!jQueryc.hasClass('updateInput')) {
jQueryc
.addClass('updateInput')
.bind('keyup', function() {
console.log(table);
jQuery(table).trigger('updateCell', [cell, false]); // false to prevent resort
});
}
return jQueryc.find('input[type="text"]').val();
},
type: 'text'
});
Moja funkcja AJAX:
jQuery('.bulkupload').keyup(function() {
check = 1;
jQuery("#" + jQuery(this).attr("id")).css("color", "#928F8F");
var part_no1 = jQuery("#" + jQuery(this).attr("id")).val();
var fieldcount = part_no1.toString().length;
var thenum = jQuery(this).attr("id").replace(/^\D+/g, '');
if (jQuery('#qty' + thenum).val() == '') {
jQuery('#qty' + thenum).val('Enter Quantity');
jQuery('#qty' + thenum).css("color", "#DF1F26");
}
var url1 = "<?php echo Mage::getBaseUrl(); ?>availableorders/index/getdetails";
jQuery.ajax({
type: "POST",
url: url1,
data: {
part_no1: part_no1
},
success: function (response) {
if (response == "check") {
jQuery('#item_name' + thenum).val("Not Found");
jQuery('#item_desc' + thenum).val("Not Found");
jQuery('#av_qty' + thenum).css("color", "#DF1F26");
jQuery('#item_name' + thenum).css("color", "#DF1F26");
jQuery('#item_desc' + thenum).css("color", "#DF1F26");
jQuery('#brand_name' + thenum).css("color", "#DF1F26");
}
else {
var result1 = jQuery.parseJSON(response);
jQuery('#item_name' + thenum).val(result1.prodname1);
jQuery('#item_desc' + thenum).val(result1.productdescription1);
jQuery('#brand_name' + thenum).val(result1.brand);
jQuery('#av_qty' + thenum).css("color", "#DF1F26");
jQuery('#item_name' + thenum).css("color", "#DF1F26");
jQuery('#item_desc' + thenum).css("color", "#DF1F26");
jQuery('#brand_name' + thenum).css("color", "#DF1F26");
if (jQuery('#av_qty' + thenum).val(result1.stock) == 0) {
jQuery('#av_qty' + thenum).val("Not in Stock");
} else {
jQuery('#av_qty' + thenum).val(result1.stock);
}
jQuery("#tablesorter-demo").trigger('updateCell');
}
}
});
});
Próbowałem tej poprawki przed, nawet teraz również, to nie działa dla mnie .. co jeszcze powinienem zrobić inorder, aby to naprawić? ten problem odżywił moje godziny pracy – prdp
Jaki błąd pojawia się w konsoli podczas uruchamiania tej strony ??? @prdp –
W tej chwili nie otrzymuję żadnego błędu, ponieważ nieaktywne pola wejściowe sortują idealnie, ponieważ wywołanie tablesorter jest w funkcji keyup. Ten, który działa, to wyłączone pola wejściowe w mojej tabeli, w których wartości są zapełniane przez AJAX, sortowanie nie działa, więc nie ma błędów w konsoli – prdp