#jquery
Вопрос:
Мне нужно создать 2 варианта выбора (ценовой диапазон) с такими опциями
<select id="price1">
<option selected="selected" value="0">0</option>
<option value="100">100</option>
<option value="200">200</option>
<option value="300">300</option>
<option value="400">400</option>
<option value="500">500</option>
<option value="600">600</option>
<option value="700">700</option>
<option value="800">800</option>
<option value="900">900</option>
<option value="1000">1000</option>
</select>
<select id="price2">
<option value="100">100</option>
<option value="200">200</option>
<option value="300">300</option>
<option value="400">400</option>
<option value="500">500</option>
<option value="600">600</option>
<option value="700">700</option>
<option value="800">800</option>
<option value="900">900</option>
<option selected="selected" value="1000">1000</option>
</select>
Поэтому я вручную создал эти варианты, но в некоторых категориях у меня есть товары с максимальной ценой = 300, а в некоторых-1200.
Я могу получить максимальную переменную цены (из базы данных), и я хочу создать выбор (оба), ограниченный только максимально доступной опцией.
Например, если:
$(function() {
var vallmax = 300;
});
Ожидаемый результат:
<select id="price1">
<option selected="selected" value="0">0</option>
<option value="100">100</option>
<option value="200">200</option>
И
<select id="price2">
<option value="100">100</option>
<option value="200">200</option>
<option selected="selected" value="300">300</option>
Ответ №1:
Отфильтруйте и скройте свой параметр на основе значения вашей базы данных(vallmax) .
var vallmax = 300; // Get max value from datatbase
var opt1 = vallmax - 100;
$('#price1 option').filter(function() {
return parseInt(this.value, 10) > opt1;
}).hide();
$('#price2 option').filter(function() {
return parseInt(this.value, 10) > vallmax;
}).hide();
$('#price2').val(vallmax); //Select default max value for second dropdown
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="price1">
<option selected="selected" value="0">0</option>
<option value="100">100</option>
<option value="200">200</option>
<option value="300">300</option>
<option value="400">400</option>
<option value="500">500</option>
<option value="600">600</option>
<option value="700">700</option>
<option value="800">800</option>
<option value="900">900</option>
<option value="1000">1000</option>
</select>
<select id="price2">
<option value="100">100</option>
<option value="200">200</option>
<option value="300">300</option>
<option value="400">400</option>
<option value="500">500</option>
<option value="600">600</option>
<option value="700">700</option>
<option value="800">800</option>
<option value="900">900</option>
<option selected="selected" value="1000">1000</option>
</select>