Onchange open URL via select - jQuery

Coughlin picture Coughlin · Mar 1, 2011 · Viewed 317.2k times · Source

What would be the best way to attach an event so on change of a select option a URL. Store the href in an attr and grab it on change?

Answer

Meligy picture Meligy · Mar 1, 2011

It is pretty simple, let's see a working example:

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

.

Remarks:

  • The question specifies jQuery already. So, I'm keeping other alternatives out of this.
  • In older versions of jQuery (< 1.7), you may want to replace on with bind.
  • This is extracted from JavaScript tips in Meligy’s Web Developers Newsletter.

.