为什么“输入”不适用于我的表单?

时间:2015-10-01 07:29:19

标签: javascript passwords

这是代码,我无法弄清楚为什么输入/返回不起作用!是因为它是inline吗?

HTML

<div class="wrap"><form name="login" style="margin: 0px">
<label for="fname">CLICK TO ENTER PASSWORD</label>
<input TYPE="text" NAME="pass" size="17" onKeyDown="e.keyCode == 13;"  id="fname"  class="cool"><br><input type="button" value="LOGIN"  class="asbestos-flat-button" onClick="TheLogin(this.form)">
</form>
</div>

JS

<script language="JavaScript" type="text/javascript">
<!--- PASSWORD PROTECTION SCRIPT
function TheLogin() {
var password = 'password';

if (this.document.login.pass.value == password) {
  top.location.href="home.html";
}
else {
  location.href="index.html";
  }
}
// End hiding --->
</script>

我正在学习JS所以任何帮助都会非常棒!

更新

感谢您的帮助。集成时仍然无法正常工作。当我按下Enter / return时,页面不会加载home.html。相反,我没有刷新,地址栏中有url http://example.com/?pass=password

如果我点击该按钮,则会加载 home.html

谢谢!

2 个答案:

答案 0 :(得分:0)

您错过了<input type="submit">,没有它,您无法使用Enter键提交表单。

答案 1 :(得分:0)

Here I wrote a JSFiddle以及工作示例。

在HTML代码中:

  • onKeyDown="e.keyCode == 13;"文本元素中删除<input>
  • onClick="TheLogin(this.form)"按钮元素中删除<input>
  • 从&#39;按钮&#39;更改输入按钮的类型。提交&#39;。这样,按&#34;输入&#34;在输入文本表单中提交表单。
  • 拦截&#34;提交&#34;表单中的事件,在onSubmit="theLogin(this.form)"元素上添加<form>

注意:我已经从&#34; TheLogin&#34;重新命名了函数名称。到&#34; theLogin&#34;因为在JavaScript中,函数以小写字母开头,如果它们不是构造函数的话。

HTML代码:

<div class="wrap">
    <form name="login" style="margin: 0px" onSubmit="theLogin(this.form)">
        <label for="fname">CLICK TO ENTER PASSWORD</label>
        <INPUT TYPE="text" NAME="pass" size="17" id="fname" class="cool">
        <br>
        <input type="submit" value="LOGIN" class="asbestos-flat-button">
    </form>
</div>

JavaScript代码:

theLogin = function() {
    var password = 'password';

    if (this.document.login.pass.value === password) {
        top.location.href = "home.html";
    } else {
        location.href = "index.html";
    }
}