我在我的項目中實施了jQuery tablesorter。jQuery表格分揀機不能處理由AJAX提取的值
我的表格由輸入文本框組成,其中有些文本框由ajax填充。表格排序對於用戶輸入的輸入字段非常有用,但是使用ajax從數據庫填充的輸入字段沒有正確排序。
我的代碼:
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'
});
我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');
}
}
});
});
我以前試過這個修復,即使現在也是這樣,它不適用於我..還有什麼我該怎麼做才能解決這個問題?這個問題一直在吃我的工作時間 – prdp
運行這個頁面時,你在控制檯中遇到了什麼錯誤? @prdp –
截至目前我沒有得到任何錯誤,因爲未禁用的輸入框正在排序完美,因爲tablesorter調用是在keyup函數中。正在工作的是我的表中的禁用輸入字段,其中的值由AJAX填充,排序不在那裏工作,所以在控制檯 – prdp