Javascript - 简单的登录重定向
Javascript - Simple Login Redirection
一直在阅读一些JavaScript教程,并尝试制作一个简单的登录系统。为此,我使用了以下代码。警报行正确执行,但重定向行似乎没有产生任何结果。
问题:我怎样才能让它工作?代码有什么问题?
注意:我知道这不是一个安全的登录系统。我只需要它在满足不同条件时正确重定向。
我还为重定向行尝试了不同的语法(删除引号、括号等)。他们似乎都不起作用...以防这只是语法错误。
法典:
<form name="loginForm" onsubmit="loginCheck()" method="post">
<input type="text" name="userName"><br>
<input type="text" name="passWord"><br><br>
<input type="submit" value="Login">
</form>
<script>
function loginCheck() {
var usr=document.loginForm.userName.value;
var psw=document.loginForm.passWord.value;
var username="admin";
var password="admin";
if ((usr==username) && (psw=password)) {
alert ("True Info");
window.location.href ("http://www.google.com");
return true;
}
else {
alert ("False Info");
window.location.href ("http://www.google.com");
return false;
}
}
</script>
有三个问题:
-
href
是一个字符串,而不是一个函数,因此将其作为函数调用将抛出一个 except 并中止脚本 - 您不会从事件处理程序返回
false
,因此表单将提交并覆盖您要对location
执行的任何操作
您 - 有一个作业,您正在尝试执行比较
要解决此问题,请执行以下操作:
-
为位置分配值:
location = "http://www.google.com/";
- 从事件处理程序返回:
onsubmit="return loginCheck();"
- 小心使用
=
和==
的位置。
请注意,内在事件属性是我们在 90 年代编写 JavaScript 的方式。 编码实践已经改进,我们现在可以用不显眼的 JavaScript 来区分关注点。
function loginCheck(event) {
var usr = this.elements.userName.value;
var psw = this.elements.passWord.value;
var username = "admin";
var password = "admin";
if ((usr == username) && (psw == password)) {
alert("True Info - submitting form");
} else {
alert("False Info - going to Google");
location = "http://www.google.com";
event.preventDefault();
}
}
document.getElementById('loginForm').addEventListener('submit', loginCheck);
<form id="loginForm" method="post">
<input type="text" name="userName">
<br>
<input type="text" name="passWord">
<br>
<br>
<input type="submit" value="Login">
</form>
另外,请注意,尝试完全在客户端进行身份验证是愚蠢的。它可以用于基本事件处理的示例,但不应在实践中尝试。
这是一个问题:
if ((usr==username) && (psw=password)) {
注意到单个 = 符号了吗?这意味着您是在分配,而不是比较。
if ((usr==username) && (psw==password)) {
更改为上述内容,然后看看它是否有效。
只需使用:
window.location.href = "http://www.google.com";
它是一个对象,而不是一个函数。
相关文章:
- 我尝试在登录脚本中使用ajax,但页面不会重定向
- 访问NeedLogin操作后不重定向到登录页面
- 登录后重定向,缓存页面问题-Javascript
- Framework7:登录重定向
- 在页面加载之前检查登录和重定向
- 如何在ASP.NET中创建重定向到登录页
- 意思是.js - 登录后重定向用户 - 在本地工作,但在部署时不起作用
- 登录尝试和重定向
- Laravel:在 ajax 请求的会话过期后重定向到登录
- 用户使用铁路由器登录后如何重定向
- 从登录页重定向到主页
- 登录后PHP登录脚本重定向不起作用
- Facebook登录重定向问题
- Javascript - 简单的登录重定向
- Facebook 登录重定向 PHP/Javascript 不起作用
- Protractor e2e测试登录重定向
- 如何为不同类型的用户设置不同的自定义登录重定向
- Magento:自定义登录重定向为特定的客户组
- Javascript登录重定向不工作
- 在自定义授权期间强制ajax .fail()来管理登录重定向