Skip to content

Commit 1ef57f8

Browse files
committed
added formatResultCssClass, fixes select2#288
1 parent 92cd1a9 commit 1ef57f8

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

select2.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,7 @@
601601

602602
opts = $.extend({}, {
603603
populateResults: function(container, results, query) {
604-
var populate, data, result, children, id=this.opts.id;
604+
var populate, data, result, children, id=this.opts.id, self=this;
605605

606606
populate=function(results, container, depth) {
607607

@@ -617,6 +617,7 @@
617617
node.addClass("select2-result");
618618
node.addClass(selectable ? "select2-result-selectable" : "select2-result-unselectable");
619619
if (compound) { node.addClass("select2-result-with-children"); }
620+
node.addClass(self.opts.formatResultCssClass(result));
620621

621622
label=$("<div></div>");
622623
label.addClass("select2-result-label");
@@ -660,10 +661,10 @@
660661
var group;
661662
if (element.is("option")) {
662663
if (query.matcher(term, element.text(), element)) {
663-
collection.push({id:element.attr("value"), text:element.text(), element: element.get()});
664+
collection.push({id:element.attr("value"), text:element.text(), element: element.get(), css: element.attr("class")});
664665
}
665666
} else if (element.is("optgroup")) {
666-
group={text:element.attr("label"), children:[], element: element.get()};
667+
group={text:element.attr("label"), children:[], element: element.get(), css: element.attr("class")};
667668
element.children().each2(function(i, elm) { process(elm, group.children); });
668669
if (group.children.length>0) {
669670
collection.push(group);
@@ -687,6 +688,7 @@
687688
});
688689
// this is needed because inside val() we construct choices from options and there id is hardcoded
689690
opts.id=function(e) { return e.id; };
691+
opts.formatResultCssClass = function(data) { return data.css; }
690692
} else {
691693
if (!("query" in opts)) {
692694
if ("ajax" in opts) {
@@ -2208,6 +2210,7 @@
22082210
formatSelection: function (data, container) {
22092211
return data.text;
22102212
},
2213+
formatResultCssClass: function(data) {return undefined;},
22112214
formatNoMatches: function () { return "No matches found"; },
22122215
formatInputTooShort: function (input, min) { return "Please enter " + (min - input.length) + " more characters"; },
22132216
formatSelectionTooBig: function (limit) { return "You can only select " + limit + " items"; },

0 commit comments

Comments
 (0)