我有一个“注册”页面,在表单提交后,我会在其中发送AJAX POST。完全没有问题,只是在成功功能中,我有一个警报功能,它不等待用户输入,而是立即执行下一个功能。
这是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,关闭弹出警报。
注意:请注意,对于“警报”和“确认”,我的行为均相同
答案 0 :(得分:0)
这是预期的确切行为。 警报对话框应用于除确认消息之外不需要用户任何响应的消息。
对话框是模式窗口-在关闭对话框之前,它们阻止用户访问程序界面的其余部分。
答案 1 :(得分:0)
您需要将警报放在./index.php
页上
或者您可以使用对话框元素
(function() {
var showBtn = document.getElementById('showBtn');
var myDialog = document.getElementById('myDialog');
showBtn.addEventListener('click', function() {
myDialog.showModal();
});
})();
<dialog id="myDialog">
<form method="dialog">
<div>Success</div>
<button>Ok</button>
</form>
</dialog>
<button id="showBtn">Show</button>
答案 2 :(得分:0)
正如此question中的回答一样,您可以使用if内的警报来暂停代码。这还将仅显示一个“确定”按钮(而不是确认的“是/否”)。 重要的是!在警报调用之前,因为警报功能将始终返回 undefined
这是带有警报暂停代码的代码部分:
if (data.success == 1) {
if(!alert("Success."))
window.location.href='./index.php';
答案 3 :(得分:-1)
我猜您想使用确认对话框代替提醒。
用法示例:
if (window.confirm("Do you really want to leave?")) {
window.open("exit.html", "Thanks for Visiting!");
}
更多信息here