diff --git a/select2.js b/select2.js index 85ce780a..38307a8b 100755 --- a/select2.js +++ b/select2.js @@ -821,6 +821,15 @@ this.parent.close.apply(this, arguments); }, + focus: function () { + this.close(); + this.selection.focus(); + }, + + isFocused: function () { + return this.selection.is(":focus"); + }, + cancel: function () { this.parent.cancel.apply(this, arguments); this.selection.focus(); @@ -966,11 +975,11 @@ // hide the search box if this is the first we got the results and there are a few of them if (initial === true) { - showSearchInput = data.results.length >= this.opts.minimumResultsForSearch; - this.search.parent().toggle(showSearchInput); + showSearchInput = data.results.length >= this.opts.minimumResultsForSearch; + this.search.parent().toggle(showSearchInput); - //add "select2-with-searchbox" to the container if search box is shown - this.container[showSearchInput ? "addClass" : "removeClass"]("select2-with-searchbox"); + //add "select2-with-searchbox" to the container if search box is shown + this.container[showSearchInput ? "addClass" : "removeClass"]("select2-with-searchbox"); } }, @@ -1188,6 +1197,15 @@ this.parent.close.apply(this, arguments); }, + focus: function () { + this.close(); + this.search.focus(); + }, + + isFocused: function () { + return this.search.is(":focus"); + }, + updateSelection: function (data) { var ids = [], filtered = [], self = this; @@ -1383,7 +1401,7 @@ var args = Array.prototype.slice.call(arguments, 0), opts, select2, - value, multiple, allowedMethods = ["val", "destroy", "open", "close"]; + value, multiple, allowedMethods = ["val", "destroy", "open", "close", "focus", "isFocused"]; this.each(function () { if (args.length === 0 || typeof(args[0]) === "object") {