基本上,我试图让我的网页在成功登录后重定向。我已成功登录工作,之后不会重定向到新页面。它会刷新当前页面。
我用来接受用户输入的表单。
<!-- 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;
}
我使用双引号和单引号尝试了新位置。两者都不起作用。感谢帮助:)
答案 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