Javascript 隐藏的div在它';这是不应该的
我有一个登录脚本函数。如果结果不等于“success”,它应该在一个ID为status的div中淡出。不管发生什么事,div都会逐渐消失。尽管它登录并重定向,但您仍然可以看到div开始淡入 JS:*FYI,*是Javascript 隐藏的div在它';这是不应该的,javascript,html,Javascript,Html,我有一个登录脚本函数。如果结果不等于“success”,它应该在一个ID为status的div中淡出。不管发生什么事,div都会逐渐消失。尽管它登录并重定向,但您仍然可以看到div开始淡入 JS:*FYI,*是document.getElementById的变量* function login() { var u = _("user").value; var p = _("pass").value; var status = _("status"); v
document.getElementById的变量*
function login() {
var u = _("user").value;
var p = _("pass").value;
var status = _("status");
var ajax = ajaxObj("POST", "login_script.php");
ajax.onreadystatechange = function(){
if(ajax.responseText !== "success"){
status.innerHTML = ajax.responseText;
if(_('status').style.display != "block"){
fadeIn('status');
};
}
else{
window.location.href = "index.php";
}
};
ajax.send(
"u=" + u
+ "&p=" + p);
}
HTML:
如果有人想测试一下:
用户名:jvincilione3@aol.com
密码:密码
您可以看到我在说什么。您可以尝试为第二个添加另一个=符号,如果这样的话:
if(_('status').style.display !== "block"){
fadeIn('status');
};
如果不起作用,您可以尝试以下方法:
if(status.style.display !== "block"){
fadeIn('status');
};
onreadystatechange
可能会触发多次。您需要检查它是否完整
ajax.onreadystatechange=function(){
如果(ajax.readyState==4){//complete
if(ajax.responseText!=“成功”){
status.innerHTML=ajax.responseText;
如果(uz('status').style.display!=“块”){
fadeIn(“状态”);
};
}
否则{
window.location.href=“index.php”;
}
}
};
发布login_script.phpOk的内容。它正在返回success tho,否则它不会重定向我的页面。也发布你的ajaxObj函数。ajax正在工作,它正在返回正确的信息并让我登录。问题是它正在做fadeIn,尽管它正在恢复成功。不管怎样,我正在发布ajaxObj,但这可能不会有任何帮助。嗯,真是太棒了。尝试删除if(display!=“block”)语句后的分号。我们不一定知道ajaxObj的实现细节。它可能没有该财产;无论如何,它不是XMLHttpRequest。即使它触发10000次,第一次触发时,它也应该重定向页面。第一次触发时,您不知道您的请求是否成功。我们可能会触发open、send、header接收等。问题不在if语句中,而是应该完全跳过if语句。
function ajaxObj(meth, url) {
var x = new XMLHttpRequest();
x.open(meth, url, true);
x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
return x;
}
function ajaxReturn(x){
if(x.readyState == 4 && x.status == 200){
return true;
}
}
if(_('status').style.display !== "block"){
fadeIn('status');
};
if(status.style.display !== "block"){
fadeIn('status');
};