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() }) } diff --git a/linter-requirements.txt b/linter-requirements.txt index 5cd20868..f9f720f9 100644 --- a/linter-requirements.txt +++ b/linter-requirements.txt @@ -1,5 +1,5 @@ -bandit==1.8.2 +bandit==1.8.3 black==25.1.0 -flake8==7.1.1 -isort==6.0.0 +flake8==7.1.2 +isort==6.0.1 pydocstyle[toml]==6.3.0