| 1 |
jQuery(document).ready(function($){ |
| 2 |
wdk_dependfields_submit_form('form.form_listing'); |
| 3 |
wdk_dependfields_submit_form_query('form.form_listing'); |
| 4 |
}); |
| 5 |
|
| 6 |
const wdk_dependfields_submit_form = ($selector = null, parent_field_selector = '.wdk-field-edit') => { |
| 7 |
var $ = jQuery; |
| 8 |
var el_category,el_form, class_hide, hide_fields; |
| 9 |
class_hide = 'wdk-depend-hidden'; |
| 10 |
el_form = jQuery($selector); |
| 11 |
el_category = el_form.find('*[name="category_id"]'); |
| 12 |
|
| 13 |
el_category.on('change', function(){ |
| 14 |
hide_fields(el_category); |
| 15 |
}); |
| 16 |
|
| 17 |
hide_fields = (el) => { |
| 18 |
var value = (jQuery(el).parent().hasClass('wdk_multi_treefield_dropdown_container')) ? jQuery(el).val() : el_category.find('option:selected').attr('value'); |
| 19 |
|
| 20 |
if(el_category.is('input')){ |
| 21 |
value = el_category.val(); |
| 22 |
} |
| 23 |
|
| 24 |
el_form.find('.'+class_hide).removeClass(class_hide) |
| 25 |
if(value && typeof script_dependfields_submitform.hidden_fields[value] != 'undefined') { |
| 26 |
el_form.find('*[name *="field_"]').each(function(){ |
| 27 |
var field_id = $(this).attr('name').substr(6); |
| 28 |
if(script_dependfields_submitform.hidden_fields[value].indexOf(','+field_id+',') != -1) { |
| 29 |
$(this).closest(parent_field_selector).addClass(class_hide); |
| 30 |
} |
| 31 |
}); |
| 32 |
} |
| 33 |
}; |
| 34 |
|
| 35 |
/* init hide fields */ |
| 36 |
hide_fields(el_category); |
| 37 |
} |
| 38 |
|
| 39 |
/* depend fields, remove required and data from hidden based on depend fields */ |
| 40 |
const wdk_dependfields_submit_form_query = ($selector = null, parent_field_selector = '.wdk-field-edit') => { |
| 41 |
var $ = jQuery; |
| 42 |
var el_form, class_hide, hide_fields; |
| 43 |
class_hide = 'wdk-depend-hidden'; |
| 44 |
el_form = jQuery($selector); |
| 45 |
|
| 46 |
el_form.on('submit', function(e){ |
| 47 |
el_form.find('.'+class_hide).find('input:not([type="checkbox"]):not([name="element_id"]):not([type="radio"]):not([type="hidden"]),textarea,select').val('').removeAttr('required'); |
| 48 |
el_form.find('.'+class_hide).find('select').val(jQuery(this).find('option:first').val()).removeAttr('required'); |
| 49 |
el_form.find('.'+class_hide).find('input[type="checkbox"]').prop('checked', false).removeAttr('required'); |
| 50 |
|
| 51 |
}) |
| 52 |
} |