这个JavaScript代码有什么问题?

Dar*_*htA -2 html javascript forms

我想不出来..

标记:

<form>
    <fieldset><p>
        <label>Username: <input type="text" name="user" id="user" /></label></p><br /><p>
        <label>Password: <input type="password" name="passw" id ="passw" /></label></p>
        <label><input type="submit" value="Log in" name="submitBUT" style="width: 65px; height: 25px; background-color: green; color: white; font-weight: bold;" id="submitBUT" /><div id="helllo"></div></label>
    </fieldset>
</form>
Run Code Online (Sandbox Code Playgroud)

码:

var subBut = document.getElementById('submitBUT');
var users = ['hithere', 'Peter112', 'Geksj', 'lOsja', 'fInduS', '323DssaAA', 'f1fsus'];
var passes = ['mllesl', 'Petboy', 'Heneeesh', 'Olga', '234dasdf77/', 'minls', 'ew832ja'];
var output = [];
function submi(u, p) {
    for (var i = 0; i < users.length; i++) {
        if (users[i] == u) {
            output.push(i);
        }
    }
    for (var o = 0; o < output.length; o++) {
        if (passes[output[o]] == p) {
            return p + ' was a correct password.';
        }
    }
    return 'Error, please try again';
}
subBut.onclick = (document.getElementById('helllo').innerHTML=(submi(document.getElementById('user').value, document.getElementById('passw').value)));
Run Code Online (Sandbox Code Playgroud)

现场代码; http://jsfiddle.net/w87MS/

是的,我知道你不会在源代码中存储密码:D,它只是"fur t3h lulz"

Nic*_*ver 6

我必须同意上面的评论,不确定你在做什么但是...问题是submit处理程序是一个函数而不是你要分配的字符串,这个:

subBut.onclick = (document.getElementById('helllo').innerHTML=(submi(document.getElementById('user').value, document.getElementById('passw').value)));
Run Code Online (Sandbox Code Playgroud)

应该:

subBut.onclick = function() { 
  document.getElementById('helllo').innerHTML=
    submi(document.getElementById('user').value, document.getElementById('passw').value);
  return false; //for testing, prevent form submission
}; 
Run Code Online (Sandbox Code Playgroud)

您可以在此处测试更新版本.

  • @DarkLightA - 否则`<form>`会提交,离开页面,所以要测试并看到任何结果,你需要阻止它. (2认同)