1
0
Fork 0
mirror of synced 2025-04-11 21:10:59 +00:00
select2/src/js/data.js
2014-10-21 21:43:56 -04:00

45 lines
No EOL
1.4 KiB
JavaScript

(function ($, document, window, undefined) {
var s2 = window.s2 = window.s2 || {};
var data = s2.data = s2.data || {};
var util=s2.util;
data.local = util.clazz(Object, {
construct: function (select) {
this.select = select;
},
lookup: function () {
var data = [], self = this;
this.select.find(":selected").each(function () {
data.push(self.item($(this)));
});
return data;
},
query: function (params) {
var data = [], self = this;
self.select.find("option").each(function () {
var option = $(this);
if (self.matches(params, option)) {
data.push(self.item($(this)));
}
});
return data;
},
matches: function (params, option) {
if (params && params.term) {
var text = option.text().toUpperCase();
if (text.indexOf(params.term.toUpperCase()) >= 0) {
return true;
} else {
return false;
}
}
return true;
},
item: function (option) {
return {value: option.attr("value"), text: option.text(), element: option.get(0)};
}
});
})(jQuery, document, window);