Как сделать множественный выбор флажка с помощью ajax и без кнопки отправки
Python 3.9 Django 3.2 У меня есть категории и товары, и через простую форму в шаблоне я выбираю 1 или 2-3 чекбокса и получаю результат. Как теперь это сделать через ajax и без кнопки 'submit'.
Я выбираю несколько категорий товаров и каждое нажатие на чекбокс является ajax и следующее нажатие на чекбокс добавляет параметр к запросу.
это похоже на то, как вы выбираете несколько параметров в интернет-магазинах. Вы выбрали 2 параметра и получили отфильтрованный список товаров
Предполагаю, что нужно перехватить отправку, сохранить один запрос в кэше и добавить к этому запросу новый
<form method="post" id="category-box">
{% csrf_token %}
<div class="form-check">
<input class="form-check-input" type="checkbox" name='category' value="{{c.name}}" >
<label class="form-check-label" for="{{c.name}}"><a href="{{ c.get_absolute_url }}">{{ c.name }}</a></label>
</div>
{% endfor %}
<button type="submit">Submit</button>
</form>
Вы можете иметь onChange
на элементе form
, который срабатывает при изменении любого ввода в форме. Когда форма изменяется, вы отправляете AJAX запрос с обновленными параметрами и загружаете новые данные.
Однако это может навредить производительности, так как нажатие нескольких флажков за короткий промежуток времени будет вызывать запрос на каждое нажатие, что не нужно. Это можно решить с помощью небольшой задержки перед отправкой запроса и проверки, не изменилась ли форма впоследствии.