Skip to content

Commit e06b765

Browse files
committed
Add new param to clearOptions and fix its behavior
1 parent e6ca6d3 commit e06b765

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

src/selectize.js

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1486,26 +1486,33 @@ $.extend(Selectize.prototype, {
14861486
},
14871487

14881488
/**
1489-
* Clears all options, including all selected items
1489+
* Removes all options, by default including all selected items
14901490
*
1491-
* @param {boolean} silent
1491+
* @param {boolean} [silent = false] If truthy, no change event will be fired on the original input. No effect if removeCurrentItems is false.
1492+
* @param {boolean} [removeCurrentItems = true] If truthy, deselect and remove currently-selected items.
14921493
*/
1493-
clearOptions: function(silent) {
1494+
clearOptions: function(silent = false, removeCurrentItems = true) {
14941495
var self = this;
14951496

14961497
self.loadedSearches = {};
14971498
self.userOptions = {};
14981499
self.renderCache = {};
1499-
var options = self.options;
1500-
$.each(self.options, function(key, value) {
1501-
if(self.items.indexOf(key) == -1) {
1502-
delete options[key];
1503-
}
1504-
});
1505-
self.options = self.sifter.items = options;
1500+
if (removeCurrentItems) {
1501+
self.options = self.sifter.items = {};
1502+
} else {
1503+
var options = self.options;
1504+
$.each(self.options, function(key, value) {
1505+
if(self.items.indexOf(key) == -1) {
1506+
delete options[key];
1507+
}
1508+
});
1509+
self.options = self.sifter.items = options;
1510+
}
15061511
self.lastQuery = null;
15071512
self.trigger('option_clear');
1508-
self.clear(silent);
1513+
if (removeCurrentItems) {
1514+
self.clear(silent);
1515+
}
15091516
},
15101517

15111518
/**

0 commit comments

Comments
 (0)