从下拉列表中选择值以转到URL

时间:2015-10-28 22:11:15

标签: javascript jquery drop-down-menu

我正在尝试设置一个下拉菜单,并让最终选择带您到一个URL。我可以使各种下拉工作,但浏览器在您做出最终选择后没有做任何事情。

我可以接近,但是我失去了隐藏不适用的其他堕落的能力!



<tr>
  <td>

    <p align="center">

      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <label for="qmt-vehicle">Vehicle:</label>
      <select id="qmt-vehicle" name="vehicle">
        <option></option>
        <option class="BMW" value="BMW">BMW</option>
        <option class="Audi" value="Audi">Audi</option>
      </select>



      <p align="center">

        <label for="qmt-manufacturer">Manufacturer:</label>
        <select id="qmt-manufacturer" name="manufacturer">
          <option></option>
          <option class="BMW" value="http://www.google.com">BMW</option>
          <option class="BMW" value="http://www.google.com">&nbsp;&nbsp;&nbsp;M3</option>
          <option class="BMW" value="http://www.google.com">&nbsp;&nbsp;&nbsp;M5</option>
          <option class="Audi" value="Audi">Audi</option>
          <option class="Audi" value="http://www.google.com">&nbsp;&nbsp;&nbsp;A4</option>
          <option class="Audi" value="http://www.google.com">&nbsp;&nbsp;&nbsp;S4</option>
        </select>
        <script>
          $(function() {
            $("#qmt-vehicle").on("change", function() {
              var levelClass = $('#qmt-vehicle').find('option:selected').attr('class');
              console.log(levelClass);
              $('#qmt-manufacturer option').each(function() {
                var self = $(this);
                if (self.hasClass(levelClass)



                  || typeof(levelClass) == "undefined") {
                  self.show();
                } else {
                  self.hide();




                }




              });
            });
          });
        </script>



        <p align="center">

  </td>
</tr>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:2)

您只需将其添加到您的脚本中:

 $("#qmt-manufacturer").on("change",function()
     {
        window.location.href = $('#qmt-vehicle').find('option:selected').attr("value");
    });

答案 1 :(得分:0)

您可以像这样修改选择标记:

<select id="qmt-manufacturer" name="manufacturer" onchange="location = this.options[this.selectedIndex].value">

(取自此问题 - &gt; using href links inside <option> tag

答案 2 :(得分:0)

我知道这不是答案,因为@DinoMyte已经回答了它...但是为了简化你的代码......使用

$('#qmt-manufacturer').val('').find('> option').hide();
$('#qmt-manufacturer > option[class="'+levelClass+'"]').show();

而不是

$('#qmt-manufacturer option').each(function () {
         var self = $(this);
        if (self.hasClass(levelClass)|| typeof(levelClass) == "undefined") {
             self.show();
         } else {
             self.hide(); 
         }
 });