2010-09-10 53 views
2

好的,我正在嘗試將switch語句重定向到另一個頁面,具體取決於在選擇框中選擇了哪個選項。以下是我正在努力並試圖弄清楚的一個示例,任何幫助都將大大降低。帶重定向的switch語句

<html> 
<body> 
<form name="form1"> 
<select name="select1"> 
<option value="p1">p1</option> 
<option value="p2">p2</optino> 
</select> 
</form> 


<script type="text/javascript"> 
<!-- 
var sel = document.form1.select1; 
var txt = sel.options[sel.selectedIndex].text; 
var opt = sel.options[sel.selectedIndex].value; 

switch (sel) 
{ 
    case 'p1': window.location = 'http://www.yahoo.com' 
      break; 
    case 'p2': window.location = 'http://www.google..com' 
      break; 
} 



</script> 

<p>Set the variable to different value and then try...</p> 
</body> 
</html> 
+4

問題是? – mkoryak 2010-09-10 18:36:27

回答

1
  1. 您需要綁定一個事件處理程序切換
  2. 你的交換機是使用錯誤值

http://www.jsfiddle.net/vDFpZ/

<html> 
<body> 
<form name="form1"> 
<select name="select1"> 
<option value="p1">p1</option> 
<option value="p2">p2</option> 
</select> 
</form> 


<script type="text/javascript"> 
    window.onload = function() { 
     document.getElementsByName("select1")[0].onchange = function() { 
      var sel = this.options[this.selectedIndex]; 
      var text = sel.text; 
      var val = sel.value; 

      switch (val) 
      { 
       case 'p1': window.location = 'http://www.yahoo.com' 
         break; 
       case 'p2': window.location = 'http://www.google..com' 
         break; 
      } 
     } 
    } 
</script> 
<p>Set the variable to different value and then try...</p> 
</body> 
</html>​ 
+0

馬特上面的例子似乎工作得很好,但我需要它鏈接到提交按鈕,而不是在選擇發生時加載。我是一個總的javascript newb,我承認我有很多閱讀和練習可以做,但我需要這個方面來完成一個需要很快完成的項目。 – NewB 2010-09-10 19:12:47

5

我建議您避免使用switch語句。這個怎麼樣?

<select name="select1"> 
    <option data-url="http://www.yahoo.com" value="p1">p1</option> 
    <option data-url="http://www.google.com" value="p2">p2</option> 
</select> 

和:

document.getElementById("select1").onchange = function() { 
    var url = this.options[this.selectedIndex].getAttribute("data-url"); 
    window.location = url; 
}; 

編輯:我改變了例如使用html 5 data attributes(不用擔心,他們是100%,在所有的瀏覽器都支持),因爲你需要的東西的價值屬性其他。

+0

的事情是,我需要的值等於特定的東西,因爲它被放入一個MySQL數據庫,謝謝你。 – NewB 2010-09-10 18:47:08

+0

這可以通過將數據URL修改爲'page.php?value = CONTENTS_OF_VALUE_FIELD_HERE'來通過一個GET變量 – 2010-09-10 18:55:34

+0

oops,也忘記提及點擊提交按鈕時需要進行更改 – NewB 2010-09-10 18:57:14

1

我注意到你並沒有將更改處理程序綁定到select,所以當用戶選擇一個值時什麼都不會發生。