我有一个最讨厌的问题!我正在使用一个易于使用的密码脚本:
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:
<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>
除了输入密码和按回车键以外,> Eveything有效!
为什么会这样,我该如何解决?我花了很多时间把它全部放在JSFiddle中!
答案 0 :(得分:2)
您的onclick事件需要return
之前validate()
。您为提交按钮输入的类型需要为submit
。这将启用回车键。
<input name="submit" type="submit" value="Check In" onclick= "return validate()">
我也可以在表单
上创建一个onsubmit事件<form method="POST" onsubmit="return validate()" name="myform">
返回是必需的,因为如果我们将返回值替换为onclick="false"
,则click事件仍会传播。但是如果我们像onclick="return false"
那样返回false,那么事件就会停止。
非常重要,用户名和密码应不在javascript中。请在服务器端执行此操作。
答案 1 :(得分:0)
我认为它不起作用,因为你没有点击提交按钮。
我打赌,点击输入键不会触发onclick
事件。
您必须为keyUp
,keyPress
或类似的东西添加处理程序(我不是JS专家)。
编辑:
我刚才意识到你有input type='button'
而不是input type='submit'
。
应该是这样的:
<input name="submit" type="submit" value="Check In" onclick="validate()">
在那种类型的输入onclick上应该使用回车键。