2015-04-03 66 views
-2

所以我有这个简单的代码:令人难以置信的简单密码系统不工作

<!DOCTYPE html> 
<html> 
<head> 
    <title>SuM BUTtonsS DOe</title> 
    <link rel="stylesheet" href="buttons.css"/> 
</head> 
<body> 
    <p>Please enter the password</p> 
    <form id="enter" onSubmit="javascript:passCheck()"> 
     <input id="password" type="password" placeholder="Password"> 
    </form> 

    <script type="text/javascript"> 
     var input = document.getElementById('password'); 

     function passCheck() { 
      if (input == 'herro') { 
       window.alert("IT WORKS!!"); 
      } 
      else { 
       window.alert("darn"); 
      } 
     } 
    </script> 
</body> 
</html> 

应该不会太难吧?问题是这是行不通的...

我查过的每一处似乎都说你唯一要做的就是getElementById,那会给你文本字段的内容。但是,我只是不断收到“补偿”警报。有任何想法吗?我知道函数被调用...也许输入必须在函数中?

+2

这是不能接受的宣誓左右。我已经删除了你的问题的宣誓。 – 2015-04-03 16:38:50

+1

'onXyz'属性包含JavaScript代码,而不是URL。没有必要使用'javascript:'伪协议(它工作的唯一原因就是它看起来像标签语句的有效JavaScript语法)。 – 2015-04-03 16:41:41

回答

1

尝试获得的,而不是字段本身的字段的值,:

var input = document.getElementById('password').value; 
+1

Credit也转到T.J.克劳德,因为他告诉我把这个变量放在函数中。 – Tommay 2015-04-03 16:59:29

1

您正在针对字符串检查DOM元素。 getElementById方法返回一个DOM元素。你想要做的是根据字符串检查元素值。
更改条件

input.value == 'herro' 

应该做的伎俩。

+0

为了防止表单提交,OP还将要在“它不好”的情况下返回false,并在'onSubmit'属性中删除不必要的'javascript:'前缀。 – 2015-04-03 16:40:54

+0

......咦?你能在我的HTML中发布你的答案吗? – Tommay 2015-04-03 16:41:53

+0

HTML太长而无法在此处发布,只需更改以下行: > if(input =='herro') to > if(input.value =='herro') – Pavlin 2015-04-03 16:46:16

相关问题