使用javascript确认时显示模态

时间:2011-11-23 11:23:25

标签: javascript jquery

我有以下函数显示模态:

confirmModal: function (message) {

// CODE TO SHOW MODAL HAS BEEN REMOVED FOR THIS QUESTION //

}

因为它已被命名空间,所以它被称为:uiModal.confirmModal('Test message');

在模态中我有两个按钮:

<button class="cancel">Cancel</button>
<button class="ok">Ok</button>

现在我想做的是两件事:

  1. 当我执行以下操作:onsubmit="confirm('Are you sure?');"onclick="confirm('Are you sure?');"时,它会显示模式而不是警告框。请注意,它需要适用于链接和表单提交。

  2. 模态中的两个按钮需要取消或允许请求发生。我已经取消了关闭模式罚款,所以这只是允许或拒绝请求发生的情况。

  3. 有人可以帮忙吗?我在这里看了一些其他的问题,看过有关使用window.location($(this).attr('href'))的内容,但这只适用于链接,而不适用于提交表单。

    我也看过做window.confirm = uiModal.confirmModal('message');但是我如何在我的onclick或onsubmit

    示例中使用它

    由于

1 个答案:

答案 0 :(得分:1)

这不起作用,因为confirm是一个阻止调用(当框打开时javascript不会继续),而你的模态对话框不是。

您可以通过执行以下操作来解决此问题:

// have some temp var that holds confirmation state
var isConfirmed = false;
$("form").submit(function () {
    // when someone tries to submit the form, verify whether it's confirmed
    if (!isConfirmed) {
        // show modal dialog

        // prevent direct submit
        return false;
    }
});

// when hitting the OK button in the modal, change the confirmation state
$(".modal .ok").click(function () {
    isConfirmed = true;
    // and re-submit the form
    $("form").submit();
});