[英]Javascript function not working for login
我正在尝试创建一个非常简单的登录表单,该表单需要用户输入密码和用户名。 如果用户没有输入用户名或密码,那么我希望弹出一个警报,通知用户他需要输入用户名或密码,并且页面将不会继续进入欢迎页面。 但是这不起作用......我没有弹出任何警报,并且在我点击“登录”后我被自动重定向到欢迎页面,我只是不明白问题是什么。 任何帮助将不胜感激,并在此先感谢您。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
<script type = "text/javascript">
function login()
{
var username = document.getElementById("name");
var password = document.getElementById("pass");
if (username.value.trim() == "")
{
alert ("please enter a username or password");
return false;
}
else if (password.value.trim() == "")
{
alert ("please enter a password");
return false;
else
{
true;
}
}
</script>
</head>
<body>
<form onsubmit = "return validate()" action = "welcome.html">
<input id= "name" placeholder= "Username" type= "text"/><br><br>
<input id= "pass" placeholder= "Password" type= "password"/><br><br>
<button type = "submit">SIGN IN</button>
</form>
</body>
</html>
问题是在表单上的 onsubmit 事件中,您返回的是“ validate()
”,这不是真正的 function。
相反,将 onsubmit 属性中的该位替换为onsubmit="return login()"
,因为这似乎是您对 validate function 的替换。
其次,在登录 function 本身中,对于大多数浏览器,您还需要在return false
之前调用event.preventDefault()
(或者可能代替)。 另外,登录function中缺少一个}
,也导致了错误。
固定代码应该是
function login() { var username = document.getElementById("name"); var password = document.getElementById("pass"); if (username.value.trim() == "") { alert ("please enter a username or password"); event.preventDefault(); return false; } else if (password.value.trim() == "") { alert ("please enter a password"); event.preventDefault(); return false; } else//this part is also completely extraneous,there's no reason to have it, it should work the same either way { true; } }
<.doctype html> <html> <head> <meta charset="UTF-8"> <title>Login</title> </head> <body> <form onsubmit = "return login()" action = "welcome.html"> <input id= "name" placeholder= "Username" type= "text"/><br><br> <input id= "pass" placeholder= "Password" type= "password"/><br><br> <button type = "submit">SIGN IN</button> </form> </body> </html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.