Skip to content

Commit f781527

Browse files
authored
Fix#136 -- Support dependent fields in formsets (#316)
* Find the closest common ancestor of two chained selects instead of assuming it is a form. * Try to find the dependent field by its name attribute using a two-fold search strategy: exact match otherwise ends with Special thanks to @rez0n
1 parent 6e6fdd9 commit f781527

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

‎django_select2/static/django_select2/django_select2.js‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,16 @@
2626

2727
letdependentFields=$element.data('select2-dependent-fields')
2828
if(dependentFields){
29+
constfindElement=function(selector){
30+
constresult=$(selector,$element.closest(`:has(${selector})`))
31+
if(result.length>0)returnresult
32+
elsereturnnull
33+
}
2934
dependentFields=dependentFields.trim().split(/\s+/)
3035
$.each(dependentFields,function(i,dependentField){
31-
result[dependentField]=$('[name='+dependentField+']',$element.closest('form')).val()
36+
constnameIs=`[name=${dependentField}]`
37+
constnameEndsWith=`[name$=-${dependentField}]`
38+
result[dependentField]=(findElement(nameIs)||findElement(nameEndsWith)).val()
3239
})
3340
}
3441

0 commit comments

Comments
(0)