我的 php 代码 echo "joined";
在一切正常工作后,如果出现错误,则回显其他消息,当所有内容提交时,我希望用户重定向到另一个页面,但事实并非如此t,当我单击“提交”时,它会回显“已加入”,所有内容都会被检查并提交到数据库,但我需要再次单击它才能重定向到另一个页面。
$("#submit").click(function() {
$.post($("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(info) {
$("#ack").empty();
$("#ack").html(info);
});
$("#myForm").submit(function() {
return false;
});
var ack = $("#ack").text();
if (ack.match('joined')) {
window.location.replace("user-login.php");
}
});
最佳答案
您的问题是 $.post()
是一个异步函数,而您将代码视为同步函数。
换句话说,当浏览器到达这一行时:
var ack = $("#ack").text();
if (ack.match('joined')) {
window.location.replace("user-login.php");
}
POST
调用尚未完成,因此 if
尚未发生。
因此,您需要将此逻辑移至 $.post()
函数的“成功”回调中:
$.post(
$("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(info) {
$("#ack").empty();
$("#ack").html(info);
if(info.match('joined')) {
window.location.replace("user-login.php");
}
}
);
关于javascript - 提交验证后重定向到不同页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45203835/