У меня есть фильтры фильтров на моей странице, и я хотел бы, чтобы некоторые входы были скрыты в зависимости от выбора пользователя.Иерархическая форма и ввод
Для примера я использовал регион и страну. Если выбран вариант EMEA, при нажатии кнопки «Отправить», я бы хотел, чтобы второй фильтр предлагал только Великобританию и Францию в качестве возможных вариантов. Однако, если Франция отправляется напрямую со второго фильтра, я не хочу скрывать значения в фильтрах Region.
Так что я могу получить значения области фильтра, но я не знаю, как использовать, чтобы отфильтровать страны ...
HTML:
<div id="filter1">
<form action='#'>
<legend>Region</legend>
<input type="checkbox" value="all" class="select-all" checked>(All)<br>
<input type="checkbox" value="americas" class="checkboxlistitem americas" checked>Americas<br>
<input type="checkbox" value="apac" class="checkboxlistitem apac" checked>APAC<br>
<input type="checkbox" value="emea" class="checkboxlistitem emea" checked>EMEA<br>
<input type="submit" value="Apply">
</form>
</div>
<div id="filter2">
<form action='#'>
<legend>Country</legend>
<input type="checkbox" value="all" class="select-all" checked>(All)<br>
<input type="checkbox" value="us" class="checkboxlistitem americas" checked>US<br>
<input type="checkbox" value="uk" class="checkboxlistitem emea" checked>UK<br>
<input type="checkbox" value="india" class="checkboxlistitem apac" checked>India<br>
<input type="checkbox" value="france" class="checkboxlistitem emea" checked>France<br>
<input type="submit" value="Apply">
</form>
</div>
JS:
// Hide none relevant items
$("[type='submit']").click(function(event){
event.preventDefault();
var checkedValue = $("[type='checkbox']:checked", $(this).parent()).map(function(){
return $(this).val();
}).get(); //
var filterName = $(this).closest('div').attr('id');
alert(checkedValue);
alert(filterName);
});
JSFIDDLE:
https://jsfiddle.net/Max06270/jutx6snm/
Спасибо заранее, Max
есть причина у вас есть две отдельные формы вместо объединения полей? –
Да, я использую их как фильтры. Страница prod содержит 10 из них. Когда вы нажимаете apply, я использую значения для отправки запроса другому приложению (Tableau Server) – Max06270
Я спрашиваю, потому что я предлагаю только отправлять значения на сервер в конце процесса выбора фильтра, чтобы уменьшить количество вызовов. –