我处理的代码在IE(Internet Explorer)以外的所有浏览器上都运行正常。
function calculateTotal(rowid, event) {
jQuery.ajax({
type:"GET",
url:"${createLink(action:'adjustTax', controller:'contractChargeTypeGrid')}",
success:function (data, status, response) {
if (data.adjustTax == true) {
showNoticeMessages(["${il.message(value: 'taxes.exist.adjust.accordingly')}"], showAdjustmentForAdd);
} else {
showAdjustmentDialog();
}
}
});
event.stopImmediatePropagation();
event.preventDefault();
}
function showAdjustmentForAdd() {
if (!isNewRecord) {
showAdjustmentDialog();
}
}
function showAdjustmentDialog(rowid) {
var modalUrl = "${createLink(action:'chargeAdjustment', controller:'contractChargeTypeGrid')}";
var editedRows = getNumEditedRows("chargeDetails");
if (!adjustmentFlag) {
openPopup(modalUrl, 'Reason for Adjustment', '', '', function () {
adjustmentFlag = true
});
}
}
这里的问题是当showNoticeMessages语句被执行时,有一条通知消息正在弹出,但在关闭弹出窗口之前,提交动作正在执行。 预期结果:我们应该等待用户取消弹出按钮,然后再次按下提交按钮,然后应该调用操作。
请检查代码并告诉我们是否可以根据我们的期望进行任何更改以运行此代码。
由于
答案 0 :(得分:0)
我的猜测是你试图使用低于9的版本
支持event.stopImmediatePropagation(); 仅适用于IE9及以上版本
见以前的答案:
Why is event.stopImmediatePropagation() working in all browsers except IE?
答案 1 :(得分:0)
我制作了async = flase,解决了这个问题。