自昨天以来,我一直困扰于这个问题。如果我在chrome和I.E中运行以下代码它完美地工作。它在“ WorkOrder”中调用“ AssignWorkOrders”方法,并在最后重新加载页面以显示更改。
但是,当我使用Firefox控件时,会跳过对“ AssignWorkOrders”方法的调用(不要转到AssignWorkOrders),也不要重新加载页面。
另外,如果我注释掉window.location.reload();控件将为所有3个浏览器调用“ AssignWorkOrders”方法。
您能否建议使用window.location.reload有什么问题?
任何帮助将不胜感激..我非常喜欢Firefox。请让我知道是否不清楚或需要任何其他详细信息...
$.confirm("@Resources.LanguageStrings.ReadyToAssignWorkOrders".format(workOrderIds.length),
function() {
var objToSend = { workOrderUpdateParams: workOrderIds };
$.ajax({
url: '@Url.Action("AssignWorkOrders", "WorkOrder")',
dataType: 'json',
type: 'POST',
traditional: true,
cache: false,
data: $.toDictionary(objToSend),
success: function(json) {
// get a handle to the dataTbale and redraw the page
var oTable = $('##WorkOrderList').dataTable();
oTable.fnDraw();
selectAllComboItems('#SelectedStaff', false);
selectAllComboItems('#SelectedVendor', false);
}
});
window.location.reload();
});
最佳答案
您在异步请求后直接重新加载。这将导致页面在请求完成之前重新加载。您需要在成功方法中进行操作...
$.confirm(
"@Resources.LanguageStrings.ReadyToAssignWorkOrders"
.format(workOrderIds.length),
function() {
var objToSend = { workOrderUpdateParams: workOrderIds };
$.ajax({
url: '@Url.Action("AssignWorkOrders", "WorkOrder")',
dataType: 'json',
type: 'POST',
traditional: true,
cache: false,
data: $.toDictionary(objToSend),
success: function(json) {
// get a handle to the dataTbale and redraw the page
var oTable = $('##WorkOrderList').dataTable();
oTable.fnDraw();
selectAllComboItems('#SelectedStaff', false);
selectAllComboItems('#SelectedVendor', false);
// do it here
window.location.reload();
}
});
});