
本文旨在解决 HTML 表单提交时,JavaScript 的 if 语句无法正确执行页面重定向的问题。通过分析常见错误原因,提供基于 onsubmit 事件的正确实现方式,并强调前端验证的局限性,建议结合后端验证确保安全性。
在 HTML 表单中,使用 JavaScript 验证用户输入并根据验证结果进行页面重定向是一种常见的需求。然而,在实现过程中,可能会遇到 if 语句无法正确执行,导致页面无法按预期跳转的问题。
常见的错误原因包括:
为了解决上述问题,推荐使用 onsubmit 事件来处理表单提交,并阻止表单的默认行为。
立即学习“Java免费学习笔记(深入)”;
1. 修改 HTML 结构
Bracket是一套充分响应式布局后台管理系统模板,基于Bootstrap3和jQuery插件制作,自适应屏幕分辨率大小,兼容PC端和手机、平板等移动端设备,全套模板,包含注册页、登录页、仪表盘、邮件、表格布局、表单验证、窗体向导、文本编辑器、代码编辑器、UI元素、按钮、图标、活版印刷、警报和通知、标签、滑块、图形与图表、面板和部件、地图、日历、媒体管理器、时间表、博客列表、博客单页、用户目录、轮
358
将 JavaScript 函数绑定到 <form> 元素的 onsubmit 事件,并移除 <input type="submit"> 元素上的 onclick 事件。同时,添加 return false 以阻止表单的默认提交行为。
<form action="" method="get" onsubmit="return testResults(this)">
<label for="username">
<i class="fas fa-user"></i>
</label>
<input type="text" name="username" placeholder="Username" id="username" required>
<label for="password">
<i class="fas fa-lock"></i>
</label>
<input type="password" name="password" placeholder="Password" id="password" required>
<input type="submit" value="Login" />
</form>2. 修改 JavaScript 函数
修改 JavaScript 函数,使其接收表单对象作为参数,并使用该参数来访问表单元素。
function testResults (form) {
var given_username = form.username.value;
var given_password = form.password.value;
var correct_username = "123";
var correct_password = "123";
if (given_username == correct_username && given_password == correct_password) {
window.location.assign("redirected.html");
return true; // 允许表单提交
} else {
alert("Wrong username and/or password.");
return false; // 阻止表单提交
}
}完整代码示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,minimum-scale=1">
<title>Login</title>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.1/css/all.css">
<link href="login.css" rel="stylesheet" type="text/css">
<script>
function testResults (form) {
var given_username = form.username.value;
var given_password = form.password.value;
var correct_username = "123";
var correct_password = "123";
if (given_username == correct_username && given_password == correct_password) {
window.location.assign("redirected.html");
return false;
} else {
alert("Wrong username and/or password.");
return false;
}
}
</script>
</head>
<body>
<div class="login">
<h1>Login</h1>
<form action="" method="get" onsubmit="return testResults(this)">
<label for="username">
<i class="fas fa-user"></i>
</label>
<input type="text" name="username" placeholder="Username" id="username" required>
<label for="password">
<i class="fas fa-lock"></i>
</label>
<input type="password" name="password" placeholder="Password" id="password" required>
<input type="submit" value="Login" />
</form>
</div>
</body>
</html>本文介绍了如何使用 JavaScript 实现用户登录验证和页面重定向,并解决了 if 语句无法正确执行的问题。通过使用 onsubmit 事件和阻止表单默认行为,可以确保 JavaScript 代码能够正确执行,并实现预期的页面跳转。 但是,请务必记住,前端验证仅仅是一种辅助手段,不能替代后端验证。为了确保数据的安全性和用户体验,需要结合前后端验证,并添加完善的错误处理机制。
以上就是使用 JavaScript 实现用户登录验证与页面重定向的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号