首页 > 解决方案 > Javascript警报功能不等待

问题描述

我有一个注册页面,在提交表单后我发送一个 AJAX POST。完全没有问题,只是在success函数中,我有一个不等待用户输入,而是立即执行下一个函数的alert函数。

这是 SubmitHandler 函数:

submitHandler: function (form) {
$("#Sign_Button").attr("disabled", "disabled");
    $.ajax({
        type: "POST",
        url: "ws/users/insert.php",
        data: $("#form_sign").serialize(),
        success: function (data) {
            $("#Sign_Button").removeAttr("disabled");
            console.log(data);
            if (data.success == 1) {
                alert("Success.");
                window.location.href='./index.php';
            }
        }
    });
}

注意:我尝试使用 window.location.href 和 window.location,但在这两种情况下它都做同样的事情:弹出警报但也重定向到 index.php 而无需等待,关闭弹出警报。

注意:请注意,Alert 和 Confirm 我的行为相同

标签: javascriptjqueryajaxalert

解决方案


正如这个问题的答案,您可以使用 if 中的警报暂停代码。这也将只显示一个“确定”按钮(而不是确认的“是/否”)。重要的是放!在警报调用之前,因为警报函数将始终返回未定义

这是带有警报暂停代码的代码部分:

if (data.success == 1) {
    if(!alert("Success."))
        window.location.href='./index.php';

推荐阅读