diff --git a/django_select2/static/django_select2/django_select2.js b/django_select2/static/django_select2/django_select2.js index 23447d54..f299e367 100644 --- a/django_select2/static/django_select2/django_select2.js +++ b/django_select2/static/django_select2/django_select2.js @@ -26,9 +26,16 @@ let dependentFields = $element.data('select2-dependent-fields') if (dependentFields) { + const findElement = function (selector) { + const result = $(selector, $element.closest(`:has(${selector})`)) + if (result.length > 0) return result + else return null + } dependentFields = dependentFields.trim().split(/\s+/) $.each(dependentFields, function (i, dependentField) { - result[dependentField] = $('[name=' + dependentField + ']', $element.closest('form')).val() + const nameIs = `[name=${dependentField}]` + const nameEndsWith = `[name$=-${dependentField}]` + result[dependentField] = (findElement(nameIs) || findElement(nameEndsWith)).val() }) }