javascript - Redirigir el navegador según el valor del botón de opción
¿Hay una manera más fácil de redirigir el navegador según la selección de un botón de opción? Esto funciona, pero por lo que estoy leyendo en la web, probablemente haya una manera más fácil.
Este es mi formulario:
<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>
Este es mi 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");
}
});});
Gracias de antemano
Respuesta #1
Cambiaría el HTML solo un poco a algo como esto:
<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>
Yo también cambiaría al método .on() ya que simplemente hace una llamada a .on() de todos modos. La razón es que .click() simplemente realiza una llamada al método .on() creando una llamada de función extra que realmente no es necesaria. ¡Además, .on() es mucho más flexible!
Respuesta #2
DEMO EN VIVO
$(function() {
$("input[name$='value']").change(function() {
window.location.assign("http://www."+ this.value +".com");
});
});
