javascript - jQuery 模态对话框不会因用户输入而停止

标签 javascript jquery modal-dialog jquery-ui-dialog

我是 jQuery 的新手,但已经使用 jqueryUI 对话框小部件成功实现了几个模式对话框。在尝试实现另一个时,模态对话框打开,但代码继续执行而不会停止用户输入。使用 jQuery 1.7.1 和 jquery-ui-1.8.16。

这里是对话框“原型(prototype)”的定义(它是“原型(prototype)”是因为它不对满足要求所需的“确定”选择执行操作):

var $confirm = $('#confirm');
$confirm.dialog(
{
    autoOpen:false,
    width:440,
    modal:true,
    buttons:
    {
        OK: function()
        {
            $( this ).dialog( 'close' );
        },
        Cancel: function()
        {
            $( this ).dialog( 'close' );
        }
    }
});

下面是一些打开对话框的测试代码:

[ some javascript that does error checking]
alert('stop1');
$('#confirm').dialog('open');
alert('stop2');
[ more javascript including submitting the form]

第一个警报显示时会发生什么。单击它后,对话框将随第二个警报一起打开,表明该对话框不在等待用户输入。第二个警报是模态的,阻止访问对话框。当它被点击时,表单提交。此序列表明对话框没有等待用户输入。

我查看并查看了其他成功实现的模态对话框,但看不出是什么导致了这个失败。

最佳答案

对话框不会等待。相反,你会想以此为依据来决定你想要发生什么。因此,与其在对话框模式之后包含您可能想要或可能不想运行的其他代码,不如让它成为函数的最后一部分。

然后,使用您的 OK 或 Cancel 函数,如果他们选择了 ok,则在那里进行调用以继续工作流程,或者只是隐藏并执行任何需要通过 cancel 完成的取消操作。

简而言之,模态对话框不会暂停 javascript 的执行,它只会运行打开模态的代码并继续运行。

关于javascript - jQuery 模态对话框不会因用户输入而停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8865738/

相关文章:

jquery - 如何根据图像宽度的大小设置滑动DIV

javascript - 在 JSON 更改上运行 javascript?

css - Twitter Bootstrap - 如何让模态窗口在移动设备上负责?

javascript - 通过 href 滚动到元素与 Bootstrap 模式冲突

javascript - 有没有在 wagtail-admin 中打开模式窗口的正确方法?

html - 无法在 iOS 上的 Bootstrap 模式中滚动 iframe

javascript - Protractor 中的 AngularJS E2E 测试失败

javascript - 除了 ng-view 页面加载之外

javascript - angularjs - orderBy 自定义比较器

javascript - 一个intersectionObserver 观察多个元素或一个intersectionObserver 每个元素