
在html表单中,我们经常需要根据用户输入的信息来决定是否重定向到另一个页面。例如,在登录页面中,只有当用户输入的用户名和密码正确时,才应该跳转到主页。然而,在实际操作中,可能会遇到使用javascript的if语句进行重定向时失效的问题。本文将详细介绍如何解决这个问题,并提供一个可行的解决方案。
问题的核心在于如何正确地将表单元素传递给JavaScript函数,以及如何防止表单的默认提交行为干扰我们的重定向逻辑。原始代码中,通过onclick事件调用testResults函数,并将this.form作为参数传递,这可能导致函数无法正确获取表单对象。
以下是一个修正后的代码示例,它解决了上述问题,并提供了一个更可靠的重定向方法:
<!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.href = "redirected.html"; // 使用 window.location.href
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>关键修改:
通过使用 onsubmit 事件和 window.location.href 属性,我们可以更可靠地控制HTML表单的重定向行为。同时,通过阻止表单的默认提交行为,我们可以确保页面只在JavaScript的控制下进行跳转。在实际应用中,还应该考虑安全性、用户体验和错误处理等因素,以提供更好的用户体验。
立即学习“Java免费学习笔记(深入)”;
以上就是HTML JavaScript 使用 if 语句进行重定向无效的解决方案的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号