javascript - 等待 Bootbox 确认运行 Ajax

标签 javascript php jquery ajax bootbox

在启动框确认模式上按下确认后,我需要运行一个 ajax 函数。模式短暂闪烁,然后 php 代码无需等待即可运行。我如何让它等待。

我的 Javascript 在我删除 bootbox 时运行,但我想在它运行之前确认

我的代码是,

$('#change_pass_form').submit(function () {
    bootbox.confirm({
        message: "Your password is about to be changed. Are you sure?",
        buttons: {
            cancel: {label: '<i class="fa fa-times"></i> Cancel'},
            confirm: {label: '<i class="fa fa-check"></i> Confirm'}
        },
        callback: function (result) {
            if (result === 'true') {
                $.ajax({
                    type: 'POST',
                    url: 'php_files/profile_php_files/profile_password_change_process.php',
                    data: {
                        user_id: sessionStorage.getItem('user_id'),
                        new_password: $('#new_password').val(),
                        repeat_password: $('#repeat_password').val()
                    },
                    success: function (data) {
                        if (data === 'correct') {
                            bootbox.alert({
                                size: 'small',
                                message: 'Your password has been changed. You will now be logged out.',
                                callback: function () {
                                    window.location.replace('index.html');
                                }
                            });
                            return true;
                        } else {
                            bootbox.alert({
                                size: 'small',
                                message: data
                            });
                            return false;
                        }
                    }
                });
            } else {
                return false;
            }
        }
    });
}); 

最佳答案

所有的return falsereturn true 都返回到回调而不是外部提交处理函数。此外,它们仅在异步事件之后发生,因此永远不会阻止默认提交过程。

只是阻止默认浏览器提交

$('#change_pass_form').submit(function (event) {
    event.preventDefault();

关于javascript - 等待 Bootbox 确认运行 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45534539/

相关文章:

javascript - npm 模块 - 是否可以拆分 bin 和 lib 依赖项?

javascript - 将函数添加到具有两个输入字段的 .keyup()

php - 通知: Array to string conversion in error when requesting data from a databse

php - 回显 foreach 循环

PHP 函数在 PreventDefault() 之后对提交的响应不同

javascript - Chrome 在使用 javascript 检查许多复选框时挂起,而 firefox 会立即挂起

javascript - 固定大小的文本(覆盖浏览器缩放功能)

javascript - 如何使 clearInterval 工作?

php - 查找居住在指定距离之间的用户(使用用户的邮政编码)

javascript - 有没有一种方法可以将文件保存到设备(android 或 ios)内存,而无需在 Web 应用程序中使用phonegap File Api