我遇到了有史以来最烦人的问题!我正在使用易于使用的密码脚本:
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>
一切正常,除了输入密码和按回车键!
为什么会这样,我该如何解决?我花时间把它全部放在一个 JSFiddle 中!
最佳答案
您的 onclick 事件需要在 validate()
之前有一个return
。您的提交按钮的输入类型需要是 submit
。这将启用回车键。
<input name="submit" type="submit" value="Check In" onclick= "return validate()">
我也可以改为在表单上将其设为 onsubmit 事件
<form method="POST" onsubmit="return validate()" name="myform">
返回是必需的,因为如果我们像这样替换返回值 onclick="false"
,点击事件仍然会传播。但是如果我们像这样返回 false onclick="return false"
那么事件就会停止。
另外非常重要,用户名和密码应该不在javascript中。请在服务器端执行此操作。
关于javascript - 输入值禁用 Enter 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16680417/