1
0
mirror of synced 2024-11-22 21:16:10 +03:00

Added support for limiting selection

Fixes #59

Signed-off-by: Igor Vaynberg <igor.vaynberg@gmail.com>
This commit is contained in:
Kevin Brown 2012-07-27 07:53:21 -04:00 committed by Igor Vaynberg
parent 94e004ef8c
commit 4344fa054e
2 changed files with 14 additions and 2 deletions

View File

@ -315,6 +315,11 @@ Version: @@ver@@ Timestamp: @@timestamp@@
display: list-item;
}
.select2-results .select2-selection-limit {
background: #f4f4f4;
display: list-item;
}
/*
disabled look for already selected choices in the results dropdown
.select2-results .select2-disabled.select2-highlighted {

View File

@ -1,4 +1,4 @@
/*
/*
Copyright 2012 Igor Vaynberg
Version: @@ver@@ Timestamp: @@timestamp@@
@ -1035,6 +1035,11 @@
results.html(escapeMarkup(html));
postRender();
}
if (opts.selectionLimit && ("getVal" in this) && this.getVal().length >= opts.selectionLimit) {
render("<li class='select2-selection-limit'>" + opts.formatLimitReached(opts.selectionLimit) + "</li>");
return;
}
if (search.val().length < opts.minimumInputLength) {
render("<li class='select2-no-results'>" + opts.formatInputTooShort(search.val(), opts.minimumInputLength) + "</li>");
@ -1983,7 +1988,7 @@
$(val).each(function () {
if (indexOf(this, unique) < 0) unique.push(this);
});
this.opts.element.val(unique.length === 0 ? "" : unique.join(","));
this.opts.element.val(unique.length === 0 ? "" : unique.join(this.opts.separator));
}
},
@ -2138,9 +2143,11 @@
},
formatNoMatches: function () { return "No matches found"; },
formatInputTooShort: function (input, min) { return "Please enter " + (min - input.length) + " more characters"; },
formatLimitReached: function (limit) { return "You can only select " + limit + " items"; },
formatLoadMore: function (pageNumber) { return "Loading more results..."; },
minimumResultsForSearch: 0,
minimumInputLength: 0,
selectionLimit: 0,
id: function (e) { return e.id; },
matcher: function(term, text) {
return text.toUpperCase().indexOf(term.toUpperCase()) >= 0;