javascript - Omdiriger nettleser basert på verdi fra radioknapp


Finnes det en enklere måte å omdirigere nettleseren basert på valget fra en radioknapp? Dette fungerer, men ut fra det jeg leser på verdensveven, er det sannsynligvis en enklere måte.

Dette er mitt skjema:

<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>

Dette er min 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");
    }
});});

Takk på forhånd

Svar #1

Jeg ville endret HTML-en bare litt til noe som dette:

<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>

Jeg ville også endret til .on()-metoden siden den uansett bare gjør et kall til .on(). Årsaken er at .click() bare gjør et kall til .on()-metoden, noe som skaper ett ekstra funksjonskall som egentlig ikke er nødvendig. I tillegg er .on() mye mer fleksibel!

Svar #2

LIVE DEMO

$(function() {

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

});