2013-02-21 144 views
0

我是javascript新手。我試圖根據他們輸入的「客戶端ID」創建一個Web重定向到客戶端的開發站點。Javascript用戶輸入驗證

這是我到目前爲止,你會看到我正在完全倒退。

我想重定向到一個新標籤中的URL。但是如果他們輸入錯誤的客戶端ID,會彈出一個提示「對不起,再試一次」。隨着警報的添加,我無論是否輸入正確的「代碼」,都會彈出一個窗口。

<head> 
<script> 

function validateCode() 
{ 
var codeTextBox = document.getElementById("codeTextBox").value; 

if (codeTextBox == 'C1') 
{ 
    window.location.href = "http://www.client1.com"; 
} 
if (codeTextBox == 'C2') 
{ 
    window.location.href = "http://www.client2.com"; 
} 
if (codeTextBox == 'C3') 
{ 
    window.location.href = "http://www.client3.com"; 
} 
if (codeTextBox == 'C4') 
{ 
    window.location.href = "http://www.client4.com"; 
} else { 
    alert('Sorry, try again.'); 
    } 

} 

</script> 
</head> 

<body> 
Enter User ID: 
<input type="text" name="codeTextBox" id="codeTextBox" /> 
<input type="submit" name="Submit" value="Submit" onclick="validateCode()" /> 
</body> 

對我來說很簡單:)謝謝!

+0

使用'其他if',而不是僅僅'if' – Huy 2013-02-21 15:35:29

+0

使用開關的情況下 – 2013-02-21 15:36:05

+0

隨着你看到警報代碼「對不起,再試一次簡單的多。 「每次你寫「C4」以外的東西。 – Nebril 2013-02-21 15:45:10

回答

0
if (codeTextBox == 'C1') 
{ 
    window.location.href = "http://www.client1.com"; 
} 
else if (codeTextBox == 'C2') 
{ 
    window.location.href = "http://www.client2.com"; 
} 
else if (codeTextBox == 'C3') 
{ 
    window.location.href = "http://www.client3.com"; 
} 
else if (codeTextBox == 'C4') 
{ 
    window.location.href = "http://www.client4.com"; 
} 
else { 
    alert('Sorry, try again.'); 
    } 
+0

這工作!但我如何打開新選項卡中的網址? – kaitsie22 2013-02-21 15:44:37

+0

要打開一個新的標籤,你可以做window.open('[url]','_ blank')這裏指定http://www.w3schools.com/jsref/met_win_open.asp – 2013-02-21 20:40:23

0

試試這個:

<head> 
<script> 

function validateCode(){ 
    var codeTextBox = document.getElementById("codeTextBox").value; 

    if (codeTextBox == 'C1') 
    { 
     window.location.href = "http://www.client1.com"; 
    } 
    else if (codeTextBox == 'C2') 
    { 
     window.location.href = "http://www.client2.com"; 
    } 
    else if (codeTextBox == 'C3') 
    { 
     window.location.href = "http://www.client3.com"; 
    } 
    else if (codeTextBox == 'C4') 
    { 
     window.location.href = "http://www.client4.com"; 
    } 
    else 
    { 
     alert('Sorry, try again.'); 
    } 

} 

</script> 
</head> 

<body> 
    Enter User ID: 
    <input type="text" name="codeTextBox" id="codeTextBox" /> 
    <input type="submit" name="Submit" value="Submit" onclick="validateCode()" /> 
</body> 
0

的事情是,如果公司是獨立的所以即使值是「C1」,那麼最後的「其他」如果仍然會執行。

你可以這樣做:

if (codeTextBox == 'C1') 
{ 
    window.location.href = "http://www.client1.com"; 
} 
else if (codeTextBox == 'C2') 
{ 
    window.location.href = "http://www.client2.com"; 
} 
else if (codeTextBox == 'C3') 
{ 
    window.location.href = "http://www.client3.com"; 
} 
else if (codeTextBox == 'C4') 
{ 
    window.location.href = "http://www.client4.com"; 
} 
else 
{ 
    alert('Sorry, try again.'); 
} 

或開關

switch(codeTextBox) 
{ 
case 'C1': 
    window.location.href = "http://www.client1.com"; 
    break; 
. 
. 
. 

default: 
    alert('Sorry, try again.'); 
} 
+0

大聲笑,問題是一半一分鐘,我甚至無法及時完成答案:P – qiuntus 2013-02-21 15:39:25

+0

haha​​ha stackoverflow挑戰的所有部分 – Huy 2013-02-21 15:42:04

1

去嘗試使用 「否則,如果」 對C2/C3/C4的檢查。或者,您可以查看如何使用switch語句。 (查看所有其他答案。)

JavaScript並不總是按照您可能期望的順序執行操作;這裏您希望立即重定向到新頁面,但它希望先完成代碼,因此只要代碼不是C4,就會發生警報。

1

使用開關盒,這裏是示例如何在您的代碼中使用。休息你完成它。

function validateCode(){ 
    var codeTextBox = document.getElementById("codeTextBox").value; 

    switch(codeTextBox){ 
    case 'C1': 
     window.location.href = "http://www.client1.com"; 
     break; 
    case 'C2': 
     window.location.href = "http://www.client2.com"; 
     break; 
    ... 
    ... 
    ... 
    default: 
     alert('Sorry, try again.'); 
    } 
} 
0

這是在我看來:)

var redirectUrls = {c1: 'c1.com', c2: 'c2.com', c3: 'c3.com' }; 

if (codeTextBox in redirectUrls) { 
    window.location.href = redirectUrls[codeTextBox];  
} else { 
    alert('Sorry, try again.'); 
}