Всем привет! Сейчас поля в форме поиска скрываются с помощью такого условия:
$('#category_id').change(function () {
var optionSelected = $("option:selected", this);
var valueSelected = $(this).val();
if (valueSelected === '1') {
$('#rooms_id').hide();
$('#series_id').hide();
} else if (valueSelected === '2') {
$('#rooms_id').hide();
$('#series_id').hide();
} else {
$('#rooms_id').show();
$('#series_id').show();
}
Вот категории, выбирая которые скрываются ненужные поля:
<div class="col-md-3 mb-3">
<label class="sr-only">Категории</label>
<select name="category" class="form-control" id="category_id">
<option selected="true" disabled="disabled">Категории</option>
{% for category in categories %}
<option value="{{ category.pk }}">{{ category.name }}</option>
{% endfor %}
</select>
</div>
Но, мне кажется, это неполноценное решение задачи, т.к., категории добавляются в шаблон динамически с БД, и, если их случайно удалить в БД, а потом добавить не в той последовательности, как сейчас описаны селекты в условии скрипта, то ничего работать не будет. У меня уже так было, пришлось добавлять именно так, чтобы снова всё работало, либо подгонять условие, изменяя селекты, либо добавлять в БД в той же полдедовательности, как и было. Кто знает, более изящное решение, подскажите, пожалуйста.