1
0
mirror of synced 2024-11-23 05:26:10 +03:00

improve val() handling on multiselect. fixes #654

This commit is contained in:
Igor Vaynberg 2013-02-09 09:41:35 -08:00
parent 2f53c251d4
commit ebc436c42b

View File

@ -1932,15 +1932,14 @@ the specific language governing permissions and limitations under the Apache Lic
if (opts.element.get(0).tagName.toLowerCase() === "select") { if (opts.element.get(0).tagName.toLowerCase() === "select") {
// install sthe selection initializer // install sthe selection initializer
opts.initSelection = function (element,callback) { opts.initSelection = function (element, callback) {
var data = []; var data = [];
element.find(":selected").each2(function (i, elm) {
data.push({id: elm.attr("value"), text: elm.text(), element: elm});
});
if ($.isFunction(callback)) element.find(":selected").each2(function (i, elm) {
callback(data); data.push({id: elm.attr("value"), text: elm.text(), element: elm[0]});
});
callback(data);
}; };
} else if ("data" in opts) { } else if ("data" in opts) {
// install default initSelection when applied to hidden input and data is local // install default initSelection when applied to hidden input and data is local
@ -2410,10 +2409,7 @@ the specific language governing permissions and limitations under the Apache Lic
this.setVal(val); this.setVal(val);
if (this.select) { if (this.select) {
this.select.find(":selected").each(function () { this.opts.initSelection(this.select, this.bind(this.updateSelection));
data.push({id: $(this).attr("value"), text: $(this).text()});
});
this.updateSelection(data);
if (triggerChange) { if (triggerChange) {
this.triggerChange(); this.triggerChange();
} }