输入值已禁用输入密钥

时间:2013-05-21 22:16:35

标签: javascript html forms input password-protection

我有一个最讨厌的问题!我正在使用一个易于使用的密码脚本:

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中!

http://jsfiddle.net/j9HFg/14/

2 个答案:

答案 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事件。

您必须为keyUpkeyPress或类似的东西添加处理程序(我不是JS专家)。


编辑:

我刚才意识到你有input type='button'而不是input type='submit'

应该是这样的:

<input name="submit" type="submit" value="Check In" onclick="validate()">

在那种类型的输入onclick上应该使用回车键。