简体   繁体   English

多个选择框和动态生成的链接

[英]Multiple select boxes and Dynamically generated link

I have very basic select menu. 我有非常基本的选择菜单。 Currently it uses switch function. 当前它使用开关功能。 Based on the selection I can assign link to the button. 根据选择,我可以将链接分配给按钮。 The block for me here is how can I have multiple select boxes and based on at least to selectors to grab the link and assign it to the button. 对我来说,这里的障碍是如何拥有多个选择框,并且至少基于选择器来获取链接并将其分配给按钮。

For example in first select box I will have : Cars, Bikes, Jeeps. 例如,在第一个选择框中,我将有:汽车,自行车,吉普车。 Based on the selection for example "Cars" I would like a second select box to show relevant choices (BMW 3, Audi A4 and etc). 基于选择,例如“汽车”,我希望第二个选择框显示相关的选择(宝马3,奥迪A4等)。 On change of the vehicle to show the relevant one. 在换车时要显示相关的一种。 For example "Bikes" to show "Honda, Apprilia" and etc. Is this feasible with [my current code? 例如显示“ Honda,Apprilia”的“ Bikes”等。[我当前的代码可行吗?

 $(document).ready(function(e) { $('#basic_plan').change(function(e) { var an = $(this).val(); switch (an) { case "ann": $('.button-plans a').attr('href', "www.google.com"); break; case "bi": $('.button-plans a').attr('href', "www.yahoo.com"); break; case "tri": $('.button-plans a').attr('href', "www.bing.com"); break; /* and so on*/ } }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> <div class="dropdown-plans"> <select id="basic_plan" name="bill_cycle"> <option value="tri">Cars</option> <option value="bi">Bikes</option> <option value="ann">Jeeps</option> </select> </div> <div class="button-plans"> <a id="abc" href="something"> Visit now </a> </div> 

I added a class to the new select elements to make them hidden by default (and when change() triggers), then altering its visibility depending on the choice you make on their id : 我在新的select元素中添加了一个class ,以使其默认情况下处于隐藏状态(并且在change()触发时),然后根据您对它们的id做出的选择来更改其可见性:

$(document).ready(function() {
  $('#basic_plan').change(function() {
    $('.second-select').hide();
    var an = $(this).val();
    switch (an) {
      case "ann":
        $('.button-plans a').attr('href', "www.google.com");
        $('#jeeps').show();
        break;
      case "bi":
        $('.button-plans a').attr('href', "www.yahoo.com");
        $('#bikes').show();
        break;
      case "tri":
        $('.button-plans a').attr('href', "www.bing.com");
        $('#cars').show();
        break;
        /* and so on */
    }
  });
});

For second select element: 对于第二select元素:

$('.second-select').change(function() {
    var an = $(this).val();
    switch (an) {
      case "1":
        $('.button-plans a').attr('href', "www.example.com");
        break;
      case "2":
        $('.button-plans a').attr('href', "www.bitbucket.org");
        break;
      case "3":
        $('.button-plans a').attr('href', "www.facebook.com");
        break;
    }
  });
});

JsFiddle demo JsFiddle演示

Note : The reason you get a 404 from the anchor(s) is that JsFiddle adds a default URL and your link as URI. 注意 :从锚获得404的原因是JsFiddle添加了默认URL,并将您的链接作为URI。

You can do that : 您可以这样做:

$(document).ready(function(e) {
  $('#basic_plan').change(function() {
    $('.button-plans a').attr('href', $(this).find('option:selected').attr('data-url'));
  });
});

see https://jsfiddle.net/6oemzgbo/ 参见https://jsfiddle.net/6oemzgbo/

Its works. 其作品。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM