Фильтровать select

145
20 марта 2021, 09:40

Есть два select элемента первый это марка авто, второе это модель авто.

Как можно фильтроват модель авто сравнивая с массивом car_models ?

При выборе Mercedes нужно показать только (Class C, Class A)

var car_models = [ 
{'BMW':"X5"}, 
{'BMW':"X6"}, 
{'Mercedes':"Class C"}, 
{'Mercedes':"Class A"}, 
           ]; 
 
 
var $select1 = $( 'select[name=alsp-field-input-91]' ), 
    $select2 = $( 'select[name=alsp-field-input-92]' ), 
    $options = $select2.find( 'option' ); 
 
$select1.on( 'change', function() { 
    var marka =  $(this).html(); 
  $select2.html( $options.filter(function () { return marka == "BMW"; }).val()); 
} ).trigger( 'change' );
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
 
<select name="select_marka"> 
<option>BMW</option> 
<option>Mercedes</option> 
</select> 
 
<select name="select_model"> 
<option>X5</option> 
<option>X6</option> 
<option>Class C</option> 
<option>Class A</option> 
<option>Class S</option> 
</select>

Answer 1

Не знаю, зачем вам такой подход, ну попробую привести код)

var car_models = [ 
{'BMW':"X5"}, 
{'BMW':"X6"}, 
{'Mercedes':"Class C"}, 
{'Mercedes':"Class A"}, 
           ]; 
 
 
var $select1 = $( 'select[name=select_marka]' ), 
    $select2 = $( 'select[name=select_model]' ), 
    $options = $select2.find( 'option' ); 
 
$select1.on( 'change', function() { 
    var marka =  $(this).find(":selected").text(); 
    var model =  car_models.map(function(x){ if (x[marka]!='undefined') return x[marka]}); 
     
   
  $select2.html( $options.map(function () {  
   if (model.indexOf($(this).text())!=-1){ 
      return this; 
   } 
   
  })); 
 
} ).trigger('change');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
 
<select name="select_marka"> 
<option>BMW</option> 
<option>Mercedes</option> 
</select> 
 
<select name="select_model"> 
<option>X5</option> 
<option>X6</option> 
<option>Class C</option> 
<option>Class A</option> 
<option>Class S</option> 
</select>

READ ALSO
Вставить данные с процедуры в таблицу в MySQL

Вставить данные с процедуры в таблицу в MySQL

Коллеги, кто-то проходил квест по написанию синтаксиса INSERT #Temp EXEC dboTest_Proc @a = @a в MySQL? Это вообще возможно без предварительного создания таблицы...

113
Нужна помощь с SQL запросом на сортировку

Нужна помощь с SQL запросом на сортировку

Товарищи! ВыручайтеЗатуп какой то словил: Написать запрос, возвращающий на каждого пользователя (member_id) по три самых дорогих (order_amount) заказа...

105
MySQL SUM множество к множеству

MySQL SUM множество к множеству

=) Есть у меня четыре таблицы: stocks, items, categories, taxonomy Это как все поняли - складНужно вывести категории с подсчетом количества позиций в каждой...

95