击中Enter提交密码表格,如果不正确则工作,如果正确则失败

时间:2018-10-04 14:38:00

标签: javascript html html-form

当密码不正确时,此密码表单的行为与预期的一样,但是当密码正确时,则按键盘上的ENTER键不会提交该表单。

这是JavaScript:

function TheLogin() {
  var password = 'beyond';
  if (this.document.login.pass.value == password) {
    top.location.href = "streettherapy224984.html";
  } else {
    window.alert("INCORRECT PASSWORD. ACCESS DENIED.");
  }
}

function forceLower(strInput) {
  strInput.value = strInput.value.toLowerCase();
}
<form name="login" style="margin: 5px 0px 0px 0px;">
  <input class="main" type="text" name="pass" size="64" onkeydown="if(event.keyCode==13) document.getElementById('codebtn').click()" style="width: 230px;" onkeyup="return forceLower(this);"><br>
  <div id="spacer20"></div>
  <input class="main" type="button" id="codebtn" value="Submit" onclick="javascript:TheLogin(this.form)">
</form>

我完全迷路了,因此非常感谢您解决此问题!

2 个答案:

答案 0 :(得分:0)

您在这里遇到多个问题:

原样

1. <form ... onsubmit="TheLogin()">
2. <input ... type="submit" id="codebtn"...>

删除“ pass”输入上的任何按键,键入“ submit”将触发“ onsubmit”功能,因此登录

function TheLogin() {
  var password = 'beyond';
  if (this.document.login.pass.value == password) {
    window.location.href = "http://www.tanatu.com/streettherapy224984.html";
  } else {
    alert("INCORRECT PASSWORD. ACCESS DENIED.");
  }
}

function forceLower(strInput) {
  strInput.value = strInput.value.toLowerCase();
}
form {margin: 5px 0px 0px 0px;}
#pass {width: 230px;}
<form name="login" onsubmit="TheLogin()">
  <input class="main" type="text" id="pass" onkeyup="return forceLower(this);">
  <hr>
  <input class="main" type="submit" id="codebtn" value="Submit">
</form>

  

如果要模拟点击链接,请使用location.href = URL

     

如果要模拟HTTP重定向,请使用location.replace(URL)

答案 1 :(得分:-1)

嗯,首先。该方法没有设置,还有动作。试试这个

<form name="login" method="post" action="javascript:TheLogin(this.form)" style="margin: 5px 0px 0px 0px;">
<input class="main" type="text" name="pass" size="64" style="width: 230px;" ><br>
<div id="spacer20"></div>
<input class="main" type="button" id="codebtn" value="Submit" onclick="javascript:TheLogin(this.form)">
</form>

因为它们都是形式,所以我们不需要设置键盘交互触发器。所有的交互都是通过表单来处理的,即使您按回车键,也不会发送onkeydown信息。除了输入类型按钮外,对于按钮,我们保留onClick的登录功能以使其提交。在javascript中,我们可以将preventDefault设置为处理表单,使其不自动提交。

这是一个简短的解释。希望你能理解。