1
0
mirror of synced 2024-11-26 06:46:04 +03:00

Passing a string to select2('val') with initSelection causes it to be used.

Signed-off-by: Igor Vaynberg <igor.vaynberg@gmail.com>
This commit is contained in:
Dean Sofer 2012-07-20 19:10:33 -07:00 committed by Igor Vaynberg
parent b672d760ac
commit d54fd4dd0e

View File

@ -1429,7 +1429,7 @@
// single // single
val: function () { val: function () {
var val, data = null; var val, data = null, self = this;
if (arguments.length === 0) { if (arguments.length === 0) {
return this.opts.element.val(); return this.opts.element.val();
@ -1448,8 +1448,18 @@
this.updateSelection(data); this.updateSelection(data);
} else { } else {
// val is an object. !val is true for [undefined,null,''] // val is an object. !val is true for [undefined,null,'']
this.opts.element.val(!val ? "" : this.id(val)); if (this.opts.initSelection) {
this.updateSelection(val); that = this;
this.opts.initSelection(this.opts.element.val(val), function(data){
self.opts.element.val(!data ? "" : self.id(data));
self.updateSelection(data);
self.setPlaceholder();
});
return;
} else {
this.opts.element.val(!val ? "" : this.id(val));
this.updateSelection(val);
}
} }
this.setPlaceholder(); this.setPlaceholder();
@ -1905,11 +1915,21 @@
}); });
this.updateSelection(data); this.updateSelection(data);
} else { } else {
val = (val === null) ? [] : val; if (this.opts.initSelection) {
// val is a list of objects this.opts.initSelection(this.opts.element.val(val), function(newVal){
$(val).each(function () { data.push(self.id(this)); }); $(newVal).each(function () { data.push(self.id(this)); });
this.setVal(data); self.setVal(data);
this.updateSelection(val); self.updateSelection(newVal);
self.clearSearch();
});
return;
} else {
val = (val === null) ? [] : val;
// val is a list of objects
$(val).each(function () { data.push(self.id(this)); });
this.setVal(data);
this.updateSelection(val);
}
} }
this.clearSearch(); this.clearSearch();