diff --git a/modules/backend/formwidgets/repeater/assets/js/repeater.js b/modules/backend/formwidgets/repeater/assets/js/repeater.js index 615c8cfb8..d4e31a48e 100644 --- a/modules/backend/formwidgets/repeater/assets/js/repeater.js +++ b/modules/backend/formwidgets/repeater/assets/js/repeater.js @@ -118,8 +118,10 @@ } Repeater.prototype.onRemoveItemSuccess = function(ev) { + var $target = $(ev.target) + // Allow any widgets inside a deleted item to be disposed - $(ev.target).closest('.field-repeater-item').find('[data-disposable]').each(function () { + $target.closest('.field-repeater-item').find('[data-disposable]').each(function () { var $elem = $(this), control = $elem.data('control'), widget = $elem.data('oc.' + control) @@ -129,12 +131,14 @@ } }) - $(ev.target).closest('.field-repeater-item').remove() + $target.closest('[data-field-name]').trigger('change.oc.formwidget') + $target.closest('.field-repeater-item').remove() this.togglePrompt() } Repeater.prototype.onAddItemSuccess = function(ev) { this.togglePrompt() + $(ev.target).closest('[data-field-name]').trigger('change.oc.formwidget') } Repeater.prototype.togglePrompt = function () { diff --git a/modules/backend/widgets/form/assets/js/october.form.js b/modules/backend/widgets/form/assets/js/october.form.js index 6d1e7ded2..893c0460f 100644 --- a/modules/backend/widgets/form/assets/js/october.form.js +++ b/modules/backend/widgets/form/assets/js/october.form.js @@ -122,9 +122,11 @@ /* * When a master is updated, refresh its slaves */ - $.each(fieldMap, function(fieldName, toRefresh){ - fieldElements.filter('[data-field-name="'+fieldName+'"]') - .on('change.oc.formwidget', $.proxy(self.onRefreshDependants, self, fieldName, toRefresh)) + $.each(fieldMap, function(fieldName, toRefresh) { + $(document).on('change.oc.formwidget', + '[data-field-name="' + fieldName + '"]', + $.proxy(self.onRefreshDependants, self, fieldName, toRefresh) + ); }) }