diff --git a/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js b/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js
index 5d121996ee..34350740e1 100644
--- a/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js
+++ b/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js
@@ -32,6 +32,17 @@
xhr: false
},
+ wrapper: null,
+ filter: null,
+ collection: null,
+ addAll: null,
+ add: null,
+ remove: null,
+ up: null,
+ down: null,
+ selection: null,
+ removeAll: null,
+
_create: function() {
this._cache = {};
this._build();
@@ -42,65 +53,69 @@
_build: function() {
var i;
- this.wrapper = $('
');
+ this.wrapper = this.element.siblings(
+ '.ra-multiselect[data-input-for="' + this.element.attr('id') + '"]'
+ );
+
+ // Prevent duplication on browser back
+ if (this.wrapper.length > 0) {
+ this.filter = this.wrapper.find('input.ra-multiselect-search');
+ this.collection = this.wrapper.find('select.ra-multiselect-collection');
+ this.addAll = this.wrapper.find('a.ra-multiselect-item-add-all');
+ this.add = this.wrapper.find('a.ra-multiselect-item-add');
+ this.remove = this.wrapper.find('a.ra-multiselect-item-remove');
+ this.up = this.wrapper.find('a.ra-multiselect-item-up');
+ this.down = this.wrapper.find('a.ra-multiselect-item-down');
+ this.selection = this.wrapper.find('select.ra-multiselect-selection');
+ this.removeAll = this.wrapper.find('a.ra-multiselect-item-remove-all');
+ return;
+ }
+ this.wrapper = $('
').attr('data-input-for', this.element.attr('id'))
this.wrapper.insertAfter(this.element);
-
- this.header = $('