使用下拉菜单打开背景链接

时间:2011-07-30 02:35:20

标签: javascript drop-down-menu hyperlink

我对Javascript有点新鲜。我不知道我想要完成的名称,所以我希望你们都能指出我正确的方向。

我有一个下拉菜单如下:

<select name="PA" disabled="disabled">
                    <option value="0" selected="selected">
                       --
                    </option>
                    <option value="2">
                       Physical
                    </option>
                    <option value="1">
                       Special
                    </option>
                    <option value="3">
                       Status
                    </option>
                 </select>

根据我选择的内容,将2,1或3加载到公式中,并且工作正常。

但是,当用户选择三个选项之一时,我希望打开另一个站点上的URL。问题是,URL并不像site.com/1.html那么简单 - 相反,选择“物理”选项应该将2加载到上述公式中,我希望它在后台打开site.com/physical。

我意识到你不能将两个值设置为相同的选项,所以我的想法是一个函数,它使用数组将2转换为我想要的单词,然后将该单词加载到URL切换器中。

有人能指出我正确的方向吗?

3 个答案:

答案 0 :(得分:1)

如果我理解你的要求,我认为你正在寻找你的选择框上的onchange属性。看看the on change attribute 您可以在触发事件时运行所需的任何javascript函数。

<select id="PA" name="PA" onchange="javascript:OpenUrl()">

然后在OpenUrl函数中,确定选择了哪个项目并打开相应的URL。

修改

您的Open Url功能如下所示..

function OpenUrl(){
    var e = document.getElementById("PA");
    var strValue = e.options[e.selectedIndex].value;
    if (strValue == "1"){
        // Open Appropiate Url
        window.open ("http://www.myurl/special","mywindow");
    }
    else if (strValue == "2"){
        window.open ("http://www.myurl/physical", "mywindow");
    }
    else if (strValue == "3"){
        window.open ("http://www.myurl/status", "mywindow");
    }
}

每个if / else if块都会打开自己的url。这样每个选项都可以打开自己的URL。你究竟打算如何打开网址?在我的示例中,我将展示如何在新窗口中打开URL。如果这不是你想要的,你将不得不改变每个if块内的代码。

答案 1 :(得分:1)

您可以使用字符串设置“select”元素的onchange属性。当用户在“select”元素中更改其选择时,您的Internet浏览器将通过其Javascript解释器运行它。

为了实现您的想法,您可以执行以下操作:

    <script>
        function openPopup(val) {
            window.open("http://www.example.com/" + val);
        }
    </script>
    <select name="PA" onchange="openPopup(this.options[this.selectedIndex])">
        <option value="0" selected="selected">
           --
        </option>
        <option value="1" >
           Special
        </option>
        <option value="2">
           Physical
        </option>
        <option value="3">
           Status
        </option>
     </select>

重复一遍,“select”元素的onchange属性设置为字符串“openPopup(this.options [this.selectedIndex])”,当有人在drop中选择一个选项时,该字符串通过Javascript解释器下来。

答案 2 :(得分:0)

在你的js中

function loadWindow(){
var urls = ["Please select","http://myurl.com/special.htm", "http://myurl2.com/physical.htm", "http://myurl3.com/status.htm"];

 var i = document.PA.selectedIndex 
if (i>0){
window.open(urls[i]);
}
}
你的HTML中的

<select name="PA" onchange="loadWindow()">