Удалить из элементов формы (больше пользы будет, если добавить label)
onclick="document.jshop_filters.submit();"
отправляя форму по изменению состояния флажков. Для этого либо обработчик отправления формы определить в событии загрузки страницы, либо скрипт поместить после html кода формы, а не как сейчас до нее. Если помещать после кода формы, то:
<script type="text/javascript">
document.querySelector('form[name=jshop_filters]').addEventListener('change', function() {
if(this.querySelectorAll('input:checked').length) this.submit();
});
</script>
Но, проверка на наличие выбранных флажков в форме была бы логичной, если бы отправление формы было асинхронным, либо сервер формируя страницу отмечал выбранные пользователем флажки. В противном случае изменение в форме будет всегда означать выбор только одного флажка из всех, то есть можно смело отправлять форму без проверки, но выбрать несколько позиций в фильтре нельзя.