2014-08-31 50 views
0

我有一个非常基本的代码,我有两个HTML页面,index.html是基本认证页面,crap.html是我做的页面,好吧,一些废话。
现在,我在index.html上有一个表格,它附有onsubmit()处理程序,以便我可以检查用户名和密码。如果正确,它会显示一条消息并继续将用户重定向到crap.html
现在,问题是此重定向似乎对错误的凭据正常工作,但是如果给出正确的凭据,它将自动重新加载index.html页面,即使在auth.js中没有重定向代码时也是如此。JS重定向不能按预期工作

下面是代码:


auth.js

function passCheck(){ 
var user = document.getElementById("username").value; 
var pass = document.getElementById("password").value; 
var error = document.getElementById("error"); 
var set_user = "admin"; 
var set_pass = "admin"; 

if(user==set_user && pass==set_pass){ 
    error.style.color="green"; 
    error.innerHTML = "AUTHENTICATED CORRECTLY. REDIRECTING NOW."; 
    setTimeout(function(){ 
     window.location.href="../crap.html"; 
    }, 3000); 
}else{ 
    error.style.color="red"; 
    error.innerHTML = "WRONG CREDENTIALS. REDIRECTING NOW."; 
    setTimeout(function(){ 
     window.location.href="../index.html"; 
    }, 1000); 
    } 
} 

index.html

<html> 
<head> 
<title>Authentication</title> 
    <script src="js/jquery.js"></script> 
    <script src="js/auth.js"></script> 
    <link rel="stylesheet" type="text/css" href="css/style.css"> 
</head> 
<body> 
    <form onsubmit="passCheck()"> 
     <table border=0> 
      <tr> 
       <td>Username</td> 
       <td><input type="text" id="username" placeholder="Username" required autofocus></td> 
      </tr> 
      <tr> 
       <td>Password</td> 
       <td><input type="password" id="password" required></td> 
      </tr> 
      <tr> 
       <td colspan="2"> 
        <input type="submit" value="AUTHENTICATE"> 
       </td> 
      </tr> 
     </table> 
    </form> 
     <center> 
      <div id="error"></div> 
     </center> 
    </body> 
</html> 
+0

你有没有尝试把完整的URL而不是.../crap.html?可能潜在地缩小问题的范围。 – ltalhouarne 2014-08-31 20:38:15

+0

试过了。不工作。 – 2014-08-31 20:38:53

+0

@lolkidoki即使我遗漏了重定向部分,它仍然会自动重新加载页面。 – 2014-08-31 20:42:35

回答

2

重新加载页面的原因是因为表单被提交到同一页面。您的表单没有操作属性。为了防止表单实际提交,您需要提交处理程序中的return false;

或者,在提交处理程序中设置表单动作。您可以使用jQuery轻松完成此操作。

+0

这就像一个魅力。 我在这两种情况下都返回了“false”,这一切都有所不同。 – 2014-08-31 20:44:48