gpt4 book ai didi

当返回 false 时,Javascript AJAX 调用在 Firefox 中失败;

转载 作者:行者123 更新时间:2023-12-02 19:52:22 25 4
gpt4 key购买 nike

有几个与此类似的问题,但它们似乎并不相同,所以就这样吧?

我有一个网站,其中有一个登录表单。我想使用 ajax 来调用 php 函数,而在 chrome 中一切正常。在 Firefox 中,当我单击触发 logIn() javascript 函数的登录按钮时,我会被重定向到 javascript:logIn() 页面,该页面是白色的,只是显示 false。如果我删除 logIn() 方法中的 return false ,它似乎工作正常。

<form  method="post" id="loginform" action="javascript:logIn()">
<div>
<input type="text" value="Username..." name="username" id="username" onfocus="defaultInputUsername(this)" onblur="clearInputUsername(this)" />
<input type="text" value="Password..." name="passwordText" id="passwordText" onfocus="setPass()"/>
<input type="password" value="" name="password" id="password" onfocus="defaultInputPassword(this)" onblur="checkPass()" />
<input type="submit" id="submit" value="Login" name="Submit"/>
<a href="create-account.php" id="create"><span>Create Account</span></a>
</div>
</form>

上面是调用 logIn() javascript 方法的表单,如下所示:

function logIn() {
var action = "check-login.php";
var form_data = {
username : $("#username").val(),
password : $("#password").val(),
is_ajax : 1
};

$.ajax({
type : "POST",
url : action,
data : form_data,
success : function(response) {
if(response != 'failed')
$("#loginform").slideUp('slow', function() {
$("#login_response").html('<ul id="usernav" class="sf-menu sf-js-enabled sf-shadow"><li><div id="message"></div><ul><li><a href="#"><span>View Profile</span></a></li> <li><a href="#" onclick="logOut()"><span>Logout</span></a> </li></ul></li></ul>');
$("#message").html('<a id="userlink" href="#"><span>' + response + '</span></a>');
$("ul.sf-menu").superfish({
animation : {
height : 'show'
}, // slide-down effect without fade-in
delay : 800, // 1.2 second delay on mouseout
autoArrows : false
});
});
else {
$("#username").css("border", "2px red inset");
$("#password").css("border", "2px red inset");
}
}
});

return false;
}

如果有人能告诉我它何时在 chrome 中工作而不是在 Firefox 中工作,以及我是否应该使用 return false 。那真是太棒了。

谢谢!

最佳答案

这是非常非常规的代码,因此很难完全回答。

为了把这个东西整合在一起,我会将你的 action= 更改为 onsubmit=。 “行动”并不是为此目的。

<form ...stuff... onsubmit="return logIn();">

onsubmit 中返回 false 将阻止页面发布。确保您注意到它返回 logIn() 的结果,在您的情况下该结果始终为 false。

你还可以这样做:

onsubmit="logIn(); return false;"

并从登录函数中删除 return false。

注意:ajax 调用默认是异步的。

关于当返回 false 时,Javascript AJAX 调用在 Firefox 中失败;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9123298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com