把ajax放在confirm里就行了
function ajaxForm2() {
layer.confirm("确定提交吗?", {
btn: ["确认", "取消"] //按钮
}, function () {
$.ajax(
{
type: "post",
url: "../Ajax_Handle/XXXHandler.ashx?action=XXX",
data: $("#XXXform").serialize(),
async: false,
success: function (data) {
if (data.code === 2000) {
$("#XX").append(data.msg);
// showSuccess();
}
else if (data.code == 1039) {
layer.msg(data.msg);
location.href = "/Login.aspx";
}
else {
layer.msg(data.msg);
}
},
error: function () {
layer.msg("提交失败!");
}
});
});
}
-----------------------------------------------------2019.6.28
次日,我发现自己的代码有问题,问题在于,如果confirm提示框出现后我点击确认后,提示框依然存在。所以我做了修改,既可以实现在提示框弹出后,点击确认,提示框隐藏并发送请求。点击取消后,提示框隐藏,请求不发送
修改后的代码如下
function ajaxForm2() {
layer.confirm("确定提交吗?", {
btn: ["确认", "取消"] //按钮
}, function () {
$.ajax(
{
type: "post",
url: "../Ajax_Handle/xxxHandler.ashx?action=xxx",
data: $("#xxxform").serialize(),
beforeSend: function () {
//禁用按钮防止重复提交
$("#submit").attr({ disabled: "disabled" });
},
async: false,
success: function (data) {
if (data.code === 2000) {
$("#contactName").val("");
$("#contact").append(data.msg);
$("#contact option:selected").val("");
layer.msg("提交成功", {
icon: 1
});
$('#showtime1').hide();
}
else if (data.code == 1039) {
layer.msg(data.msg);
location.href = "/Login.aspx";
}
else {
layer.msg(data.msg);
}
},
complete: function () {
$("#submit").removeAttr("disabled");
},
error: function () {
layer.msg("提交失败!");
}
});
});
}