Pregunta

Me pregunto si alguien tiene alguna experiencia en el uso de un plugin de JQuery que convierte un html

<select> 
  <option> Blah </option> 
</select>

cuadro combinado en algo (probablemente un div), donde la selección de un elemento actúa de la misma como hacer clic en un enlace.

Supongo que probablemente podría utilizar javascript para manejar un evento de la selección (mis conocimientos de javascript está un poco en mal estado en el momento) y 'switch' en el valor del cuadro combinado, pero esto parece más de un hack.

Su asesoramiento, experiencia y recomendaciones son apreciados.

¿Fue útil?

Solución

La solución más simple es usar

$("#mySelect").change(function() {
  document.location = this.value;
});

Esto crea un evento onchange en el cuadro de selección que le redirige a la url almacenada en el campo valor de la opción seleccionada.

Otros consejos

No estoy seguro de que desea vincular a cuando usted haga clic en el Div, pero dado algo como esto tal vez funcionaría:

<select id="mySelect">
  <option value="1">Option 1</option>
  <option value="2">Option 2</options>
</select>
<div id="myDiv"/>

y el siguiente JQuery crea una lista de <div> elementos, una va a una dirección URL basada en el valor de la opción:

$("#mySelect option").each(function() {
    $("<div>" + $(this).text() + "</div>").appendTo($("#myDiv")).bind("click", $(this).val(), function(event) {
        location.href = "goto.php?id=" + event.data;
    });
});
$("#mySelect").remove();

¿Esto qué es lo que quieres?

Si vas a tener un montón de cuadros de selección que desea permitir el uso como redirecciones, sin tener que definir de forma autónoma, intentar algo similar a:

$("[id*='COMMON_NAME']").change(function() {
    document.location = this.value;
});

Y tienen sus cuadros de selección será nombrado de acuerdo a:

<select id="COMMON_NAME_001">...</select>
<select id="COMMON_NAME_002">...</select>

Esto crea un evento onchange para todos los IDs que contienen "NOMBRE_COMÚN" para hacer una redirección de la <option> valor.

Este trozo de código javascript en el 'seleccionar':

onchange="if(this.options[this.selectedIndex].value!=''){this.form.submit()}"

No es lo ideal (porque envíos de formularios ASP.NET MVC que estoy usando no parecen utilizar el motor de enrutamiento de direcciones Url), pero hace su trabajo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top