【发布时间】:2013-05-16 20:02:15
【问题描述】:
我遇到了有史以来最烦人的问题!我正在使用一个易于使用的密码脚本:
var count = 2;
function validate() {
var un = document.myform.username.value;
var pw = document.myform.pword.value;
var valid = false;
var unArray = ["Natalie"];
var pwArray = ["0123456"];
for (var i = 0; i < unArray.length; i++) {
if ((un == unArray[i]) && (pw == pwArray[i])) {
valid = true;
break;
}
}
if (valid) {
window.location = "hello.html";
} else {
alert("ERRR! Wrong!");
document.myform.username.value = "";
document.myform.pword.value = "";
document.myform.username.disabled = true;
document.myform.pword.disabled = true;
return false;
}
}
现在,我为这个脚本做了一个表格:
<form method="POST" onsubmit="return validate()" name="myform">
<input type="text" value="Natalie" name="username" style="width:0px;height:0px;border:0px solid;background:rgba(00,00,00,0);">
<input type="text" name="pword" style="width:150px;border:1px solid #fff;font-family:roboto;font-size:12px;padding:1% 12%;text-align:center;letter-spacing:4px;font-weight:900;margin:2%;" value="Ex: 354627" onfocus="if (this.value == 'Ex: 354627') {this.value=''}">
<br>
<input name="submit" type="submit" value="Check In" onclick= " validate()">
</form>
一切正常,除了输入密码和按回车键!
为什么会这样,我该如何解决?我花时间把它全部放在一个 JSFiddle 中!
【问题讨论】:
-
什么是返回false;为了 ?您是否尝试将其更改为 true 或完全删除它?
-
您实际上是在使用一个易于破解的密码脚本。这应该在服务器端完成!
-
是的,我知道!但这不是问题!现在是否容易打破并不重要!我只是要让输入键工作!
-
这就是为什么您不应该处理提交按钮的
click事件 - 而是为<form>处理submit事件 -
如果我将其更改为提交事件,而不是脚本不起作用...它只会重定向到 mypage.com/?username=Natalie&pword=0123456&submit=Check+In
标签: javascript html forms input password-protection