diff --git a/static/v2/js/blocks/b_search_routes.js b/static/v2/js/blocks/b_search_routes.js index 480b3cc..fd799c4 100644 --- a/static/v2/js/blocks/b_search_routes.js +++ b/static/v2/js/blocks/b_search_routes.js @@ -1,7 +1,9 @@ function searchRoutes (form) { event.preventDefault() + let $filter_form = $('.b_filter_routes form')[0]; let formData = getFormData(form); + formData = getFormData($filter_form, formData); formData.append('owner_type', 'mover'); let request = new api({ diff --git a/static/v2/js/forms.js b/static/v2/js/forms.js index c9ec6a8..ad2edd9 100644 --- a/static/v2/js/forms.js +++ b/static/v2/js/forms.js @@ -8,9 +8,8 @@ function chooseCheckbox(el) { $checkbox.classList.toggle("checked"); } -function getFormData(form) { +function getFormData(form, formData=new FormData()) { if (!form) return; - let formData = new FormData(); let default_element_types = ['input', 'textarea', 'date']; let form_elements = getFormElements(form); @@ -52,8 +51,24 @@ function addCustomDataToFormData(el, formData) { case 'checkbox': let $checkbox = el.querySelector('.checkbox'); let c_value = $checkbox.classList.contains('checked'); + if ($checkbox.dataset.value) c_value = $checkbox.dataset.value; - formData.append(name, c_value); + if ($checkbox.classList.contains('checked')){ + if (formData.get(name) || formData.get(name) === false){ + let previos_val = formData.get(name); + formData.delete(name); + formData.set(name, previos_val + "," + c_value); + break; + } + } + if (typeof c_value === 'string'){ + if ($checkbox.classList.contains('checked')){ + formData.append(name, c_value); + break; + } + } else { + formData.append(name, c_value); + } break; case 'radio': @@ -75,6 +90,11 @@ function addCustomDataToFormData(el, formData) { formData.append(name, l_value); break; + case 'select': + let $select = el.querySelector('select'); + if (!$select) return; + formData.append(name, $select.value); + } return formData; } diff --git a/templates/v2/blocks/b_filter_routes.html b/templates/v2/blocks/b_filter_routes.html index f58d8ce..219e604 100644 --- a/templates/v2/blocks/b_filter_routes.html +++ b/templates/v2/blocks/b_filter_routes.html @@ -7,12 +7,12 @@