选项上的选项

时间:2012-12-13 13:24:21

标签: javascript jquery

编辑: 我在链接上忘记了http://。这不是我的问题。我会解决这个问题......

我有一些选择,比如:

<select class="mySelect">
    <option value="http://www.url1.com">Url 1</option> <!--Default displayed--->
    <option value="http://www.url2.com">Url 2</option>
    <option value="http://www.url3.com">Url 3</option>
</select>

对此我有一个jquery监听器,看起来像这样:

$('.mySelect').change(function(){
    window.location.replace($(this).val());
});

由于这只是对所做的更改做出响应,因此我无法重定向到“www.url1.com”。我该怎么用?我只在谷歌上获得改变的建议。

编辑2:我有一堆关于使用虚拟作为第一选项的解决方案。我还得到了另一个使用按钮读取所选选项然后重定向的解决方案,但这在我正在进行的项目中无法使用,即使这些都是非常好的解决方案。

在这种情况下,我希望它听取用法,即使对自己进行了更改,就像我选择了第一个选项(默认情况下选择)我希望它能用它做什么 - 在这种情况下在重定向之上。如果有人能很好地解决这个问题,我会保持开放。

4 个答案:

答案 0 :(得分:8)

尝试输入空值的第一个选项:

<select class="mySelect">
    <option value="">Please select...</option>
    <option value="http://www.url1.com">Url 1</option>
    <option value="http://www.url2.com">Url 2</option>
    <option value="http://www.url3.com">Url 3</option>
</select>

然后,您可以修改jQuery以确保在重定向之前有值:

$('.mySelect').change(function(){
    var value = $(this).val();
    if (value != "") {
       window.location.replace(value);
    }
});

Example fiddle

另请注意,链接值需要http://(或您使用的任何协议)。


<强>更新

如果您不想使用虚拟选项,则需要更改逻辑以便按下按钮:

<select class="mySelect">
    <option value="http://www.url1.com">Url 1</option>
    <option value="http://www.url2.com">Url 2</option>
    <option value="http://www.url3.com">Url 3</option>
</select>
<button id="redirect">Go</button>
$("#redirect").click(function() {
    window.location.replace($(".mySelect").val());
});

答案 1 :(得分:0)

您还必须http://

window.location.replace("http://"+$(this).val());

答案 2 :(得分:0)

一个选项可以是您更改第一个选项,如

    <select class="mySelect">
    <option value="select">Select URL</option> <!--Default displayed--->
    <option value="www.url1.com">Url 1</option> 
    <option value="www.url2.com">Url 2</option>
    <option value="www.url3.com">Url 3</option>
    </select>

或者你可以使用click jquery event来组合框。

答案 3 :(得分:-1)

<form>
<select class="mySelect">
    <option value="" selected="selected">Please Select</option>
    <option value="www.url1.com">Url 1</option> 
    <option value="www.url2.com">Url 2</option>
    <option value="www.url3.com">Url 3</option>
</select>
</form>​

$(".mySelect").change( function() {
var n = $(this).val();
if(n != "") {
window.location.assign("http://"+n);
}
});​