2009-12-08 29 views
0

我試圖設置一個表單,允許您輸入一個授予訪問特定URL的密碼。如何使用多個選項創建輸入表單?

例如,輸入「臉譜」,它需要你在www.facebook.com 進入「雅虎」,它向您發送www.yahoo.com 進入,「谷歌」,你....得到它。 如果輸入除這些單詞之外的任何內容,則會發生錯誤。

這是我到目前爲止有:

<script language="javascript"> 
<!--// 
/*This Script allows people to enter by using a form that asks for a 
UserID and Password*/ 
function pasuser(form) { 
     if(form.id.value=="google") { location="http://www.google.com" } 
     else if(form.id.value=="facebook") { location="http://www.facebook.com" } 
     else if(form.id.value=="yahoo") { location="http://www.yahoo.com" } 

    else {alert("Invalid Password")} 
         } 
//--> 
</script> 

<form name="login"> 
<input name="id" type="text"> 
<input type="button" value="Enter Class" onClick="pasuser(this.form)"> 
</form> 

然而,這不起作用!有人可以幫我設置這個!我真的想有超過3個選項。

謝謝!

+1

如果你要指定你收到的錯誤,那就太好了......今天我把我的心靈留在家裏。 – 2009-12-08 11:11:32

+1

'onClick'應該是'onclick' – Amarghosh 2009-12-08 11:12:59

+1

請改正這個問題,避免使用*密碼*。除非你確實是指*憑證*意義上的密碼。在這種情況下:不。 – 2009-12-08 11:13:08

回答

1

我想你的意思是寫沿此線的東西:

function redirect() { 
    var textfield = document.getElementById('textfield'); 
    var location = '#'; 
    switch(textfield.value) { 
     case 'facebook': 
     location = 'http://facebook.com'; 
     break; 
     case 'google': 
     location = 'http://google.com'; 
     break; 
     // add as many as you like 
    } 
    window.location.href = location; 
} 

HTML:

<input id="textfield" type="text" value=""/> 
<input type="button" value="Enter Class" onclick="redirect()"/> 

你並不需要一個形式做這個URL重定向。

祝你好運。

+0

除了你需要一個表單有輸入元素和有效的HTML正確嗎? – 2009-12-08 12:46:39

+0

不可以。您可以在表單外有輸入元素。 – 2009-12-08 22:32:24

1

如果您想將用戶發送到特定位置,則可能需要使用window.location而不是location

2

我不知道在這個特定的例子中不起作用(它的工作原理,點擊提交按鈕,不擊中ENTER)。但是,如果你想有3點以上的網站,你可以更容易:

<script> 
// ... 
sites = { 
    "google": "http://www.google.com", 
    "facebook": "http://www.facebook.com", 
    "yahoo": "http://www.yahoo.com" 
}; 
function pasuser(form) { 
    if (sites[form.id.value]) { 
     window.location = sites[form.id.value]; 
    } else { 
     alert("Invalid Password") 
    } 
} 
</script> 
2

你不應該使用「ID」作爲一個HTML元素,因爲它可能與id屬性名稱衝突。對於我的答案的其餘部分,請看MBO's answer

0

我在Firefox 3.5和IE 8上試過了您的代碼,它在您點擊按鈕時起作用,而不是在鍵入字符串後按下Enter時起作用。要使其按輸入鍵工作,請從表單的提交中調用return pasuser(this),並從pasuser函數的末尾調用return false;

<form name="login" onsubmit="return pasuser(this)"> 
function pasuser(form) 
{ 
    //other code 
    else {alert("Invalid Password")} 
    return false; 
} 
相關問題