【问题标题】:In custom 'alert' or 'confirm' box remaining code get execute before press ok在自定义“警报”或“确认”框中,剩余代码在按确定之前执行
【发布时间】:2015-10-25 08:43:54
【问题描述】:

我创建了两个函数警报和确认来覆盖警报和确认框。

alert()
{
   $('#alertModal').modal('open');
}
confirm()
{
   $('#confirmModal').modal('open');
}

并称它为:

function Test()
{
   var x = confirm('are you confirm?');
   y = 11;
}

通常y=11 语句不会被执行,除非用户选择“确定”或“取消”按钮按下。但在我的自定义确认y=11 语句中,在按下“确定”或“取消”按钮之前执行。

【问题讨论】:

  • “标准”alert()confirm() 模态是阻塞的,而你的不是。您必须添加一些回调函数或承诺模式才能对实际结果做出反应。
  • 我写了一个回调函数。它也给了我结果,即真或假。但问题在于阻塞。如何创建阻塞模式?你能给它看看提琴手吗?
  • @Sirko : 如何显示引导模式,如 showmodaldialog?
  • Afaik 你不能自己创建阻塞模式。 JS 本质上是异步的,所以它几乎没有阻塞方法。 Wrt to bootstrap - 我不知道。

标签: javascript jquery jquery-ui jquery-plugins


【解决方案1】:

您可以使用例如 jQuery UI 创建确认对话框,例如:

$(document).on('click', '.delete-file', function () {
        var data = $(this).data(),
            fileId = data.fileId;

        $('<div><p>Are you sure you wish to delete this file?</p></div>').dialog({
            title: 'Delete Confirmation',
            modal: true,
            resizable: false,
            draggable: false,
            closeOnEscape: true,
            buttons: [
                {
                    text: 'Yes',
                    click: function () {
                        // handle your stuff here
                        $(this).dialog('destroy');
                    }
                },
                {
                    text: 'No',
                    click: function () {
                        $(this).dialog('destroy');
                    }
                }]
        });
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 2020-09-06
    相关资源
    最近更新 更多