diff --git a/select2.js b/select2.js index 36619862..ec10d987 100644 --- a/select2.js +++ b/select2.js @@ -1014,6 +1014,16 @@ the specific language governing permissions and limitations under the Apache Lic throw "query function not defined for Select2 " + opts.element.attr("id"); } + if (opts.createSearchChoicePosition === 'top') { + opts.createSearchChoicePosition = function(list, item) { list.unshift(item); }; + } + else if (opts.createSearchChoicePosition === 'bottom') { + opts.createSearchChoicePosition = function(list, item) { list.push(item); }; + } + else if (typeof(opts.createSearchChoicePosition) !== "function") { + throw "invalid createSearchChoicePosition option must be 'top', 'bottom' or a custom function"; + } + return opts; }, @@ -1694,7 +1704,7 @@ the specific language governing permissions and limitations under the Apache Lic function () { return equal(self.id(this), self.id(def)); }).length === 0) { - data.results.unshift(def); + this.opts.createSearchChoicePosition(data.results, def); } } } @@ -3330,7 +3340,8 @@ the specific language governing permissions and limitations under the Apache Lic adaptDropdownCssClass: function(c) { return null; }, nextSearchTerm: function(selectedObject, currentSearchTerm) { return undefined; }, hideSelectionFromResult: function(selectedObject) { return undefined; }, - searchInputPlaceholder: '' + searchInputPlaceholder: '', + createSearchChoicePosition: 'top' }; $.fn.select2.ajaxDefaults = {