¿Cuál sería la mejor manera de adjuntar un evento para cambiar una opción de selección de una URL? ¿Almacenar el href en un attr y agarrarlo al cambiar?
Es bastante simple, veamos un ejemplo de trabajo:
<select id="dynamic_select"> <option value="" selected>Pick a Website</option> <option value="http://www.google.com">Google</option> <option value="http://www.youtube.com">YouTube</option> <option value="https://www.gurustop.net">GuruStop.NET</option> </select> <script> $(function(){ // bind change event to select $('#dynamic_select').on('change', function () { var url = $(this).val(); // get selected value if (url) { // require a URL window.location = url; // redirect } return false; }); }); </script> $(function() { // bind change event to select $('#dynamic_select').on('change', function() { var url = $(this).val(); // get selected value if (url) { // require a URL window.location = url; // redirect } return false; }); }); <select id="dynamic_select"> <option value="" selected>Pick a Website</option> <option value="http://www.google.com">Google</option> <option value="http://www.youtube.com">YouTube</option> <option value="https://www.gurustop.net">GuruStop.NET</option> </select> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" ></script>.
on con bind ..
Creo que esta es la forma más sencilla:
<select onchange="if (this.value) window.location.href=this.value"> <option value="">Pick one:</option> <option value="/foo">Foo</option> <option value="/bar">Bar</option> </select>Puede usar este fragmento de código simple usando jQuery para redirigir desde un menú desplegable.
<select id="dynamic-select"> <option value="" selected>Pick a Website</option> <option value="http://www.google.com/">Google</option> <option value="http://www.youtube.com/">YouTube</option> <option value="http://www.stackoverflow.com/">Stack Overflow</option> </select> <script> $('#dynamic-select').bind('change', function () { // bind change event to select var url = $(this).val(); // get selected value if (url != '') { // require a URL window.location = url; // redirect } return false; }); </script>