在查看页面中:
@using (Ajax.BeginForm("UpdateAccount", "AccountInfo", new AjaxOptions {
HttpMethod = "POST",
AllowCache = false,
OnSuccess = "accountUpdateRequestSuccess",
OnFailure = "formSubmissionFailed",
OnBegin = "validateAccountInformation"
}))
validateAccountInformation函数如下:
function validateAccountInformation() {
if (error.length > 0) {
showErrorNotification(errorListHtml);
return false;
}
else {
if ( Some Conditions ) {
bootbox.confirm({
title: "Confirm",
size: "medium",
message: "Some Message",
callback: function (result) {
if (result) {
Some Code
}
else {
Some Code
}
}
});
}
}
单击保存按钮时,首先会调用validateAccountInformation函数。如果没有错误,它将启动一个Bootbox。如果单击Bootbox OK按钮,它将提交具有某些值的表单;如果单击Bootbox CANCEL按钮,它将提交具有与以前不同的某些值的表单。
现在,我面临的问题是,当用户单击“保存”按钮时,它将进入validateAccountInformation函数。如果没有错误,它将调用Bootbox.Confirm。我期望表单提交将一直保持到在Bootbox中单击“确定” /“取消”按钮之前。但是它不等待Bootbox。意味着从不调用Bootbox回调函数。它可能与AJAX异步有关。
我使用了JavaScript确认方法。而且此方法确实可以保存表单提交。
function validateAccountInformation() {
if (error.length > 0) {
showErrorNotification(errorListHtml);
return false;
}
else {
if ( Some Conditions ) {
if (confirm("check")) {
some code
}
}
}
}
根据上述方案,可以使用某种方式将Bootbox确认框与Ajax Begin Form一起使用吗?