【发布时间】:2014-10-09 00:37:59
【问题描述】:
我想制作一个简单的验证表单,但我遇到了一个无法修复的小错误。单击登录元素后,我希望出现一个 login_window(从 display:none 更改为 display:block) 之后,我希望显示登录名和密码输入。当我用“用户名”和“密码”以外的任何内容填写它时,它应该向我显示警报消息。取而代之的是,即使没有表单,它也会一直隐藏 login_window(我只需单击提交,login_window 就被隐藏了)
HTML:
<div id="login_window">
<form name="login_form" onsubmit="return validate_login()" method="post">
<label>Login</label>
<input type="text" name="usr" placeholder="username"><br>
<label>Sign In</label>
<input type="text" name="psw" placeholder="password"><br>
<input type="submit" value="Submit">
</form>
</div>
CSS:
#login {
position:absolute;
width:65px;
height:26px;
}
#login_window {
position:absolute;
width:400px;
height:460px;
background-color:#F0F0F0 ;
z-index:2;
}
JS:
var login = document.getElementById("login");
var login_window = document.getElementById("login_window");
login_window.style.display = "none";
login.addEventListener("click",function(){
login_window.style.display = "block";
});
function validate_login(){
var un = document.login_form.usr.value;
var pw = document.login_form.psw.value;
var username = "username";
var password = "password";
if((un == username) && (pw == password)){
return true;
}else{
alert("Login was unsuccesful, please enter the corrent name and password.");
return false;
}
}
这是Fiddle
尽管它在小提琴中的工作方式与在我的浏览器中不同,但我有两个问题。
1) 为什么每次点击提交时login_window一直隐藏?
2) 为什么我的验证表单不起作用?
谢谢
【问题讨论】:
-
回答你的第一个问题:
login_window.style.display = "none"; -
只是要指出......永远不要在真实世界应用程序上使用javascript用户名/密码验证,因为它可以被任何人阅读......
-
你有一个计时问题:未捕获的 ReferenceError: validate_login is not defined
标签: javascript validation hide show