Фильтр <SELECT>вариантов по значению - PullRequest
1 голос
/ 05 августа 2020

У меня есть 2 выбора входа

Страна и автомобили

Это структура: [https://jsfiddle.net/CornerStone20/r1eanhwv/6/] [1]

JSFIDDLE: [1]: https://jsfiddle.net/CornerStone20/r1eanhwv/6/

Когда я выбираю страну, как мне показывать автомобили только выбранной страны?

Я пробовал:

$(function() {
    $('#Country_Select').on('change', function() {
        var val = this.value;
        $('#Cars_Select option').hide().filter(function() {
            return this.value.indexOf( val + '_' ) === 0;
        })
        .show();
    })
    .change();
});

Ответы [ 2 ]

1 голос
/ 05 августа 2020

Вы можете использовать each l oop, чтобы перебирать параметры и проверять, совпадает ли значение car select- box с country select-box в зависимости от этих параметров show() или hide().

Код демонстрации :

$(function() {
  $('#Country_Select').on('change', function() {
    var val = this.value;
    $('#Cars_Select option').each(function() {
      //checking value of opton in cars selct is same
      if ($(this).val() == val) {
        $(this).show(); //show it
      } else {
        $(this).hide(); //hide other
      }
    })
  })
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
// Country select
<select id="Country_Select" class="form-control">
  <option selected="true" disabled="false">Choose Country</option>
  <option value="0001">France</option>
  <option value="8ebd9ec1-b121-44e9-a530-42f227359913">Germany</option>
  <option value="4dda2683-83c6-48c8-af9b-0a96991b7c8b">New Zealand</option>
</select>


// Cars

<select id="Cars_Select" class="form-control">
  <option selected="true" disabled="false">Choose Cars</option>
  <option value="0001">Renauld</option>
  <option value="0001">Mini</option>
  <option value="0001">Paris</option>
  <option value="8ebd9ec1-b121-44e9-a530-42f227359913">BMW</option>
  <option value="8ebd9ec1-b121-44e9-a530-42f227359913">Audi</option>
  <option value="8ebd9ec1-b121-44e9-a530-42f227359913">Mercedes</option>
  <option value="8ebd9ec1-b121-44e9-a530-42f227359913">Benz</option>
  <option value="4dda2683-83c6-48c8-af9b-0a96991b7c8b">Kiwi Auto</option>
</select>
0 голосов
/ 05 августа 2020

Несмотря на то, что на вопрос был дан ответ, я пишу здесь лучший подход:

$('#Country_Select').on('change', function(e) {
  let cars = $('#Cars_Select').children();
  cars.hide();
  let country = $(this).val();
  cars.filter('[value=' + country + ']').add(cars.eq(0)).show();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...