Javascript函数执行而不等待上面几行中的函数返回?

标签 javascript prototypejs dom-events

我已将函数绑定(bind)到表单提交按钮。我希望函数弹出一个 iframe 对话框并等待用户交互,然后提交表单(通过 ajax post)。

但我看到的行为是对话框弹出,但函数继续执行并执行 ajax post,即使对话框调用尚未返回。我需要某种方法来停止代码执行,直到该对话框函数返回。

我有这样的东西:

submitForm: function () {   

        <call a function that pops up a dialog, doesn't return until user interacts> 

        new Ajax.Updater('dialogContainer', url, {
                ...........
            }
        });      

        return false;
    }

我认为这是 Javascript 的预期行为,但我不确定如何绕过它...

最佳答案

浏览器中的 Javascript 将按顺序执行,因此显然您启动 iframe 对话框的调用不会等待用户交互并立即返回。我的猜测是,无论您使用什么库来弹出对话框,都会有某种回调函数,它会根据用户操作执行。因此,您只需将 new Ajax.Updater(....); 代码移动到回调函数中即可。

关于Javascript函数执行而不等待上面几行中的函数返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2026847/

相关文章:

javascript - 如何防止用户使用 Google map 绘图管理器创建自相交多边形?

javascript - 为什么以下代码中的警报框不断触发?

javascript - 在 JavaScript DOM 中,是否可以将整个按钮功能克隆到另一个?

javascript - Magento Varien JS 文件应该如何更改?

javascript - vue.js + Android 键盘 - 模型上缺少最后输入的单词

javascript - 如何将 `appendPre` 放入表中?

javascript - 从静态 handle 中拖动一个 div

javascript - 在 React Native 中运行 mount() 不可能吗?

javascript - OpenLaszlo 可以使用像 JQuery 和 PrototypeJS 这样的 JavaScript 库吗?

javascript - 原型(prototype) Ajax 请求限制?