3

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

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

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

4

2 回答 2

2

您的 onclick 事件需要有一个returnbefore validate()。您的输入类型需要submit用于您的提交按钮。这将启用回车键。

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

我也可以改为在表单上创建一个 onsubmit 事件

<form method="POST" onsubmit="return validate()" name="myform">

return 是必需的,因为如果我们像这样替换返回值onclick="false",click 事件仍然会传播。但是如果我们像这样返回 false ,onclick="return false"那么事件就会停止。

同样非常重要的是,用户名和密码应该在 javascript 中。请做那个服务器端。

于 2013-05-21T22:21:18.483 回答
0

我认为它不起作用,因为您没有单击提交按钮。

我敢打赌,按回车键不会触发onclick事件。

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


编辑:

我刚刚意识到你input type='button'input type='submit'

它应该是这样的:

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

在那种类型的输入上,onclick 应该与 enter 键一起使用。

于 2013-05-21T22:29:30.753 回答