2015-04-03 65 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

相關問題