Skip to content

Commit 2df88bc

Browse files
committed
Bugfix for values w/spaces.
1 parent 06278be commit 2df88bc

File tree

3 files changed

+15
-14
lines changed

3 files changed

+15
-14
lines changed

jquery.selectize.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -1175,7 +1175,7 @@
11751175
* @returns {object}
11761176
*/
11771177
Selectize.prototype.getOption = function(value) {
1178-
return this.$dropdown.children('[data-value=' + value + ']:first');
1178+
return this.$dropdown.children('[data-value="' + value.replace(/(['"])/g, '\\$1') + '"]:first');
11791179
};
11801180

11811181
/**
@@ -1317,12 +1317,12 @@
13171317
self.$control_input[0].focus();
13181318

13191319
var value = data && data[self.settings.valueField];
1320-
if (!isset(value) || !value) return;
1320+
if (!value) return;
13211321

13221322
self.addOption(value, data);
13231323
self.setCaret(caret, false);
13241324
self.addItem(value);
1325-
self.refreshOptions();
1325+
self.refreshOptions(false);
13261326
self.$control_input.val('');
13271327
});
13281328

@@ -1370,7 +1370,7 @@
13701370
if (this.$input[0].tagName.toLowerCase() === 'select') {
13711371
options = [];
13721372
for (i = 0, n = this.items.length; i < n; i++) {
1373-
options.push('<option value=' + htmlEntities(this.items[i]) + ' selected="selected"></option>');
1373+
options.push('<option value="' + htmlEntities(this.items[i]) + '" selected="selected"></option>');
13741374
}
13751375
if (!options.length && !this.$input.attr('multiple')) {
13761376
options.push('<option value="" selected="selected"></option>');

jquery.selectize.min.js

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/selectize.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -808,7 +808,7 @@ Selectize.prototype.removeOption = function(value) {
808808
* @returns {object}
809809
*/
810810
Selectize.prototype.getOption = function(value) {
811-
return this.$dropdown.children('[data-value=' + value + ']:first');
811+
return this.$dropdown.children('[data-value="' + value.replace(/(['"])/g, '\\$1') + '"]:first');
812812
};
813813

814814
/**
@@ -950,12 +950,12 @@ Selectize.prototype.createItem = function() {
950950
self.$control_input[0].focus();
951951

952952
var value = data && data[self.settings.valueField];
953-
if (!isset(value) || !value) return;
953+
if (!value) return;
954954

955955
self.addOption(value, data);
956956
self.setCaret(caret, false);
957957
self.addItem(value);
958-
self.refreshOptions();
958+
self.refreshOptions(false);
959959
self.$control_input.val('');
960960
});
961961

@@ -1003,7 +1003,7 @@ Selectize.prototype.updateOriginalInput = function() {
10031003
if (this.$input[0].tagName.toLowerCase() === 'select') {
10041004
options = [];
10051005
for (i = 0, n = this.items.length; i < n; i++) {
1006-
options.push('<option value=' + htmlEntities(this.items[i]) + ' selected="selected"></option>');
1006+
options.push('<option value="' + htmlEntities(this.items[i]) + '" selected="selected"></option>');
10071007
}
10081008
if (!options.length && !this.$input.attr('multiple')) {
10091009
options.push('<option value="" selected="selected"></option>');
@@ -1012,6 +1012,7 @@ Selectize.prototype.updateOriginalInput = function() {
10121012
} else {
10131013
this.$input.val(this.getValue());
10141014
}
1015+
10151016
this.$input.trigger('change');
10161017
};
10171018

0 commit comments

Comments
 (0)