选择选项onclick更改网址或更改div

时间:2011-10-10 22:24:09

标签: javascript url html onclick onchange

所以我想要做的是,在我选择第一个选项的时刻,显示一个div,如果我选择选项2将我重定向到另一个URL。我甚至不知道是否可能! 样品:

<select class="required" id="thechoices">
<option value="">Service Type</option>
<option value="box1">From LAX Airport</option>
<option VALUE="http://www.dma.org/linuxsig/">To The Airport</option>
</select>

<div id="box1"><p>Box 1 stuff...</p></div>

2 个答案:

答案 0 :(得分:3)

<select id="options" onchange="optionCheck()">
 <option></option>
 <option value="show">Show Div</option>
 <option value="goto">Go To Google</option>
 </select>
<div id="hiddenDiv" style="height:100px;width:300px;border:1px;visibility:hidden;">
I am visible now!</div>

<script type="text/javascript">
    function optionCheck(){
        var option = document.getElementById("options").value;
        if(option == "show"){
            document.getElementById("hiddenDiv").style.visibility ="visible";
        }
        if(option == "goto"){
            window.location = "http://google.com";
        }
    }
</script>

你可以用jquery使它变得更漂亮,但这应该有效。

答案 1 :(得分:1)

是的,有可能

将onchange事件处理程序添加到您的选择。

<select class="required" id="thechoices" onchange="return airportChoice(this)">

将要隐藏的方框ID的显示设置为隐藏。

   #box1{display:none} //css

这是一个通用函数,根据您的问题重新获得参数,根据您的问题,您可以轻松地从机场选择中获得大量选项,如果您需要更多选择,只需在每个选项中添加以下内容。

 onchange="return airportChoice(this)" 

JS功能

function airportChoice(n){

  if(n.selectedIndex === 1){
  // show a div (id)  // alert(n.value);
    document.getElementById(n.value).style.display = "block";
   }else if(n.selectedIndex === 2){
     location.href= n.value;  // redirect the user to the url 
   }
    // this last one is not what you ask but for completeness 
    // hide the box div if the first option is selected again
    else if (n.selectedIndex == 0){ // alert(n[1].value);
    document.getElementById(n[1].value).style.display = "none";
    }
  }