2014-10-01 59 views
0

我試圖通過虛擬場景學習JavaScript,下面將不會在活動上下文中使用。所有的html頁面都在我的家庭服務器上,這就是爲什麼我沒有在鏈接中使用http:// etc。如果語句重定向不能按預期工作

我試圖讓下面的代碼帶我到「索引」頁面,如果我輸入正確的用戶名和密碼,並保持在「主頁」頁面,如果我輸入它不正確,但與警告聲明「無效登錄」。如果輸入正確的用戶名和密碼,我會正確重定向但是如果我在正確觸發警報後輸入錯誤的用戶名/密碼,我也會重定向到索引頁。

如何停止索引頁面加載錯誤的用戶名/密碼?我敢肯定,它可能是簡單的我很想念!

這是網頁

<!DOCTYPE html> 
<html> 
<head> 
<link rel="stylesheet" type="text/css" href="css.css"> 
</head> 
<body> 
<div id="container"> 

<div id="loginbox"> 
<form id="login" action="home.html"> 
Username: <input type="text" name="user" id="user"><br> 
Password: &nbsp;<input type="password" name="password" id="password"><br> 
<input type="submit" value="Login" onclick="checkUserName()"> 
</form> 

</div> 
</div> 

的HTML,這是腳本

function checkUserName() { 
var User = document.getElementById("user").value; 
var Password = document.getElementById("password").value; 

if (User === "user123" && Password === "password123") { 
    window.location = "index.html"; 
} 
else { 
    alert("Invalid Login"); 
} 
} 

乾杯!

+0

您將您的按鈕聲明爲提交類型。這就是導致這種行爲的原因。將輸入替換爲

+1

您剛剛提交了表單。 'onclick =「checkUserName();返回false」'。或者使用非突兀的技術 – CodingIntrigue 2014-10-01 11:33:00

回答

0

你不想在這種情況下提交表格。您只需在點擊登錄時調用js函數。所以使用一個正常的按鈕,而不是提交。

<button onclick="checkUserName()">login</button> 

當你使用一個提交按鈕,表單將得到提交的,除非你不阻止默認動作通過e.preventDefault()或從js函數返回false被稱爲

function checkUserName() { 
 
var User = document.getElementById("user").value; 
 
var Password = document.getElementById("password").value; 
 

 
if (User === "user123" && Password === "password123") { 
 
    window.location = "index.html"; 
 
} 
 
else { 
 
    alert("Invalid Login"); 
 
} 
 
}
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<link rel="stylesheet" type="text/css" href="css.css"> 
 
</head> 
 
<body> 
 
<div id="container"> 
 

 
<div id="loginbox"> 
 
<form id="login" action="home.html"> 
 
Username: <input type="text" name="user" id="user"><br> 
 
Password: &nbsp;<input type="password" name="password" id="password"><br> 
 
<button onclick="checkUserName()">login</button> 
 
</form> 
 

 
</div> 
 
</div>