单击对话框上的停止页面处理unitl按钮

时间:2015-09-16 19:37:33

标签: javascript ajax asp.net-mvc bootbox

对于MVC,Ajax和JavaScript,我仍然是一个新手。我有一个应用程序,我必须做出改变。现在,当进行更改并保存时,微调器会在信息保存和页面加载时显示。 Save的代码如下所示:

$('#SaveButton').on('click', function () {
    navParams.isDirty = false;
});

HTML看起来像这样:

<input type="submit" value="Save" class="btn btn-block btn-primary user-action" name="action:Save" id="SaveButton" />

只需注意屏幕上有多个按钮,因此它正在使用&#34;多个按钮&#34;来自enter image description here

的解决方案

添加了以下代码:

 $('#SaveButton').on('click', function () {
    navParams.isDirty = false;
    displaySavePromptMessage();
});
function displaySavePromptMessage() {
    if (isModalOpen == false) {
        bootbox.dialog({
            closeButton: false,
            title: "",
            message: "<strong>Warning: </strong>Changes have been made, ensure corresponding dates have been updated on the screen",
            buttons: {
                success: {
                    label: "Ok",
                    callback: function () {
                        navParams.userAction = false;
                    }
                }
            }

        });
    }
}

现在发生的是点击保存按钮,微调器开始运行,加载对话框,但在单击确定按钮之前,对话框按钮关闭,微调器停止。更改已保存。 需要发生的是微调器启动,对话框加载,一切都保持不变,直到用户单击“确定”。然后处理继续。我不确定如何实现这一目标。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

基本概念。您需要收听submit事件并阻止它:

$('.some-form').on('submit', function(submitEvent) {
  submitEvent.preventDefault();
});

然后在您的处理程序中,您需要在成功时提交表单:

// Inside your success handler
$('.some-form').get(0).submit();

答案 1 :(得分:0)

您输入type="submit",点击此按钮时会提交表单。将此更改为type="button"或@Lesha Ogonkov说

$('#yourFormID').on('submit', function (e) {
e.preventDefault();//it will stop loading page on form submission
});

在你成功处理函数中的ajax

$('.myFromID').get(0).submit();