【问题标题】:What's wrong in this JavaScript code?这段 JavaScript 代码有什么问题?
【发布时间】:2011-06-01 23:40:58
【问题描述】:

我想不通..

标记:

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

代码:

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)));

实时代码; http://jsfiddle.net/w87MS/

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

【问题讨论】:

  • 你至少可以描述代码的目的是什么,它应该做什么以及它实际上在做什么。
  • 你想完成什么?这看起来真的很复杂,没有立即明确的原因。我的意思是,将每次尝试都推送到数组上是什么意思?
  • 尽管指向实时示例的链接非常有用,但总是问题中发布实际相关的标记和代码。 StackOverflow 是独立的,外部资源可以被重命名、删除等。此外,人们不应该必须点击链接来理解(并可能回答)你的问题。 (这次我已经为你做了。)

标签: javascript html forms


【解决方案1】:

我必须同意上面的 cmets,不确定您在做什么,但是...问题是 submit 处理程序是 function 而不是 string 你在分配,这个:

subBut.onclick = (document.getElementById('helllo').innerHTML=(submi(document.getElementById('user').value, document.getElementById('passw').value)));

应该是:

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

You can test the updated version here.

【讨论】:

  • @DarkLightA - 否则&lt;form&gt; 将提交,离开页面,因此要测试并查看任何结果,您需要防止这种情况发生。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-25
  • 2018-09-09
相关资源
最近更新 更多