我正在尝试在javascript中创建一个登录页面。当合适的用户键入正确的用户名和密码时,应将其带到另一页。我似乎找不到加载新页面的方法。
这是我的HTML
<body>
<form name="myForm" onsubmit="return validation()" method="post">
User name:
<br>
<input type="text" name="userid">
<br> User password:
<br>
<input type="password" name="password">
<input type="submit" value="Submit" id="login">
</form>
</body>
这是我的JS
function validation() {
var x = document.forms["myForm"]["userid"].value;
var y = document.forms["myForm"]["password"].value;
if (x == "Naomi" && y == "Amaze") {
alert("RIGHT password");
return true;
window.location.href = "budget/index.html";
} else {
alert("Wrong password");
return false;
};
}
警报有效,所以我怀疑window.location.href不是正确的做法。
答案 0 :(得分:2)
Map[A,Set[B]]
语句之后的任何内容都不会被执行。 new HashMap[Int, List[String]] with MultiMap[Int, String]
是您函数的退出门,因此将其保留为最后一条指令。
另外,我想补充一点,希望凭证测试不是在客户端JavaScript代码中完成的,否则任何人都可以轻松检查代码并找到真正的凭据。
最后一件事:我通常倾向于在表单的return
事件上添加一个监听器,而不是要求它返回一个函数的结果。我不能肯定地说为什么它更好,它对我来说听起来更准确:
return
答案 1 :(得分:0)
因为你的回报是真的;在分配位置之前,函数在重定向实际发生之前结束。将return true移动为最后一段代码,或者完全丢失它。
答案 2 :(得分:0)
您应该从onsubmit
处理程序返回false,它需要自定义提交逻辑,但是在您的代码中,如果输入的数据是正确的,则返回true并且默认提交逻辑启动,callint POST在您当前位置并且刷新页面而不是继续进行重定向。
https://jsfiddle.net/berrtech/L0pbeou8/
validation = function() {
var x = document.forms["myForm"]["userid"].value;
var y = document.forms["myForm"]["password"].value;
if (x == "Naomi" && y == "Amaze") {
alert("RIGHT password");
window.location.href = "budget/index.html";
} else {
alert("Wrong password");
};
}
&#13;
<form name="myForm" onsubmit="validation(); return false" method="POST">
User name:
<br>
<input type="text" name="userid">
<br>User password:
<br>
<input type="password" name="password">
<input type="submit" value="Submit" id="login">
</form>
&#13;