Added support for limiting selection
Fixes #59 Signed-off-by: Igor Vaynberg <igor.vaynberg@gmail.com>
This commit is contained in:
parent
94e004ef8c
commit
4344fa054e
@ -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 {
|
||||
|
11
select2.js
11
select2.js
@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
Copyright 2012 Igor Vaynberg
|
||||
|
||||
Version: @@ver@@ Timestamp: @@timestamp@@
|
||||
@ -1036,6 +1036,11 @@
|
||||
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>");
|
||||
return;
|
||||
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user