根据单选按钮值重定向浏览器

时间:2013-02-23 17:03:15

标签: javascript jquery

是否有更简单的方法根据单选按钮的选择重定向浏览器?这是有效的,但从我在万维网上阅读的内容来看,可能有一种更简单的方法。

这是我的表格:

<form>
<input type="radio" name="value" value="google"><span>Google</span><br>
<input type="radio" name="value" value="yahoo"><span>Yahoo</span><br>
<input type="radio" name="value" value="bing"><span>Bing</span>

这是我的jquery:

$(function() {
$("input[name$='value']").click(function() {
    var value = $(this).val();
    if (value == 'google') {
        window.location.assign("http://www.google.com");
    }
    else if (value == 'yahoo') {
        window.location.assign("http://www.yahoo.com");
    }
    else if (value == 'bing') {
        window.location.assign("http://www.bing.com");
    }
});});

提前致谢

4 个答案:

答案 0 :(得分:6)

我会稍微改变html到这样的东西:

<form>
<input type="radio" name="redirect" value="http://google.com"><span>Google</span><br>
<input type="radio" name="redirect" value="http://yahoo.com"><span>Yahoo</span><br>
<input type="radio" name="redirect" value="http://bing.com"><span>Bing</span>
</form>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$('input[type="radio"]').on('click', function() {
     window.location = $(this).val();
});
</script>

我也会改为.on()方法,因为它只是调用.on()。原因是.click()只是调用.on()方法,创建一个非常必要的额外函数调用。加上.on()更灵活!

答案 1 :(得分:1)

LIVE DEMO

$(function() {

    $("input[name$='value']").change(function() {
        window.location.assign("http://www."+ this.value +".com");
    });

});

答案 2 :(得分:0)

如果您需要http重定向,

window.location.replace将是您的选择。但是,如果您希望保留历史记录(功能浏览器后退按钮),则window.locationwindow.location.href中的任何一个都是您最好的选择。 如果是单页应用程序,那么您也可以考虑window.location.hash进行散列网址更改。

要获取单选按钮的值,您可以尝试

$('input[type=radio]').on('change', function(e) {
   // preferred window location change appropriate as mentioned above
});

对于基于jquery的解决方案:

$('input[type=\'radio\']').on('change', function(e) {
   $(location).attr('href', this.value);
});

答案 3 :(得分:-1)

我会将网址设置为单选按钮的值。

<form>
<input type="radio" name="websiteRadio" value="http://www.google.com"><span>Google</span><br>
<input type="radio" name="websiteRadio" value="http://www.yahoo.com"><span>Yahoo</span><br>
<input type="radio" name="websiteRadio" value="http://www.bing.com"><span>Bing</span>
</form>

$(document).ready(function()
 $("input[name='websiteRadio']").click(function() {        
    window.location = $(this).attr('value');
 });
});