2013-10-18 44 views
1

下面是我正在使用的代碼。我無法讓我的按鈕回覆功能

<script> 
function login(){ 
var username = document.getElementById("username").value; 
var password = document.getElementById("password").value; 

if(username == "Ethan" && password == "Horton"){ 
    document.getElementById("test").innerHTML="Logged In: "Ethan" 
} 
else{ 
    alert("Incorrect User/Pass") 
    } 
} 
</script> 
<br /> 


Username: <input type="text" name="username" id = "username"> 

Password: <input type="password" name="password" id = "password"> 

<button type = "button" onclick = "login()">Login</button> 

當我按下按鈕時,函數不會被調用。 (我是JavaScript的新手)

+0

(1)jQuery會使這非常容易。 (2)它看起來像你試圖使用純粹的JS認證 - 這是一個壞主意。 – Julio

+2

看起來你的Javascript中有幾個語法錯誤。你有沒有檢查你的JS錯誤控制檯? –

+0

這是一個非公開登錄系統的直接登錄系統的測試運行 - 我只是想搗亂它。 – Durnehviir

回答

5

問題出在這個字符串中:"Logged In: "Ethan"。這是不正確的。

您可以用單引號把它包起來或逃避正規qouotes:

'Logged In: "Ethan"' 

"Logged In: \"Ethan\"" 

http://jsfiddle.net/f0t0n/LDLN4/

1

所有你需要做的是用引號括響應。

document.getElementById("test").innerHTML="Logged In: "Ethan" //incorrect 

document.getElementById("test").innerHTML="Logged In: Ethan" //CORRECT 

因爲你只是顯示一個字符串,整個事情都需要用引號括起來。如果存儲的字符串變量,你就不需要引號

var loggedInMessage = "Logged In: Ethan"; 
document.getElementById("test").innerHTML = loggedInMessage; 

所以請記住,報價是指一個字符串,並沒有引號意味着你對一個變量調用。 (如果變量已被定義,並且您嘗試調用它,您將會看到一個錯誤)