window.location =“location.html”;

时间:2014-12-15 22:15:38

标签: javascript html javascript-events

基本上,我试图让我的网页在成功登录后重定向。我已成功登录工作,之后不会重定向到新页面。它会刷新当前页面。

我用来接受用户输入的表单。

<!-- Login Details -->
  <form name = "loginForm" onsubmit = "validate(this);">
    <p> 
        <label for = "username"> Username: </label> 
        <input type = "text" id = "username" name = "user"/> 
    </p>

    <p> <label for = "password"> Password: </label> 
        <input type = "password" id = "password" name = "pass" required/>
    </p>

    <p class = "submit"> 
        <input type = "submit" value = "Submit"/> 
    </p>
</form>

现在是javascript的一面;

var user = form.user.value;
var pass = form.pass.value;
var valid = false;

var userArray = ["admin", "kevin", "mark", "paul", "conor"];        // ("admin1", "admin2", "admin3") As many as you like - no comma after final entry.
var passArray = ["pass", "pass1", "pass2", "pass3", "pass4"];   // ("Password1", "Password2", "Password3") the corresponding passwords;

for (var i = 0; i < userArray.length; i++) 
{
    if ((user == userArray[i]) && (pass == passArray[i])) 
    {
        valid = true;
        //alert("Login was successful");
        break;
    }
}

if (valid == true)
{
    alert ("Login was successful");
    window.location = 'mainmenu.html';
    return false;
}

我使用双引号和单引号尝试了新位置。两者都不起作用。感谢帮助:)

2 个答案:

答案 0 :(得分:2)

您正在提交表单。您尚未指定操作,因此它将提交到当前页面。这是在location分配产生任何影响之前发生的。

使用您当前的方法,从return false修复它onsubmit(即调用 validate的函数),以便表单提交的正常行为被取消了。


那说:

  • 将所有身份验证信息放在客户端上是完全不安全的,你永远不应该这样做。
  • onsubmit这样的内在事件属性是我们在90年代做JS事件绑定的方式。我们现在有addEventListener(另见preventDefault)。

答案 1 :(得分:-1)

来自Mozilla开发者网络:

  

Window.location只读属性返回一个Location对象   有关文件当前位置的信息。

  

每当为位置对象,文档分配新值时   将使用URL加载,就像调用了location.assign()一样   使用修改后的URL。请注意,安全设置,如CORS,可能   防止这种情况发生。

location.assign("http://www.mozilla.org"); // or
location = "http://www.mozilla.org";

这是示例1: https://developer.mozilla.org/en-US/docs/Web/API/Window.location