我的项目中有搜索字段,它使用 $.post
获取搜索查询的结果。
我的问题:当用户单击搜索按钮时,它可以正常工作,但是当用户再次单击搜索按钮,然后单击我的 thead 列时,jquery sorter 会将其与表中显示的先前搜索重复。
我该如何解决这个问题,以免我的排序器函数重复?
这是点击搜索按钮的 Jquery 代码。
$(function () {
$('#submitfloat').click(function () {
$('#loading').show();
setTimeout(function () { $("#loading").hide(); }, 800);
var SubjectTypes = $('#SubjectTypes').val();
var Teams = $('#Teams').val();
var Companies = $('#Companies').val();
var Consultants = $('#Consultants').val();
var PlannedDates = $('#PlannedDates').val();
var CompletedDates = $('#CompletedDates').val();
var DateTypes = $('#DateTypes').val();
var data = {
Subjectypes: SubjectTypes,
Companies: Companies,
Teams: Teams,
Consultants: Consultants,
PlannedDates: PlannedDates,
CompletedDates: CompletedDates,
DateTypes: DateTypes
};
var fromDate = $('#PlannedDates').val();
var endDate = $('#CompletedDates').val();
if (Date.parse(fromDate) > Date.parse(endDate)) {
jAlert("End date must be later than start date", "Warning");
return false;
} else {
$('#GoalcardSearchResult tbody').hide();
setTimeout(function () { $("#GoalcardSearchResult tbody").show(); }, 800);
$.post('@Url.Action("Search", "SearchNKI")', data, function (result) {
$("#GoalcardSearchResult tbody").empty();
result.forEach(function (goalcard) {
$("#GoalcardSearchResult tbody").append(
$('<tr/>', {
click: function () {
id = goalcard.Id;
var url = '@Url.Action("AnswerForm", "AnswerNKI", new { id = "__id__"})';
window.location.href = url.replace('__id__', id);
},
html: "<td>" + goalcard.Name + "</td><td>" + goalcard.Customer + "</td><td>" + goalcard.PlannedDate + "</td><td>" + goalcard.CompletedDate + "</td>"
}));
});
$("#GoalcardSearchResult").tablesorter();
});
return false;
}
});
});
感谢您的帮助,提前致谢!
最佳答案
我猜 tablesorter 在用户单击排序按钮之前已经初始化。在这种情况下,替换此代码:
$("#GoalcardSearchResult").tablesorter();
用这个:
$("#GoalcardSearchResult").trigger('update');
关于javascript - 我的表使用 Jquery Table Sorter 获取重复的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10242903/