Iamは現在、select2 jqueryプラグインを使用して、ajax呼び出しから動的に取り込まれたリストからデータを選択します。私はselect all機能を実装する必要があります。これにより、ユーザーはselect allボタンを使って一度にすべてのオプションを選択することができます。私はこの例をjsfiddeで実装しようとしました。ajax検索で設定されたselect2 jqueryプラグインですべての機能を選択する方法
Click here to see the jsfiddle
しかし、項目のより多くのリストを選択するための500 items.Itは、ブラウザがしばらくハングすると言います。パフォーマンスの問題なしにこれを実装するより良い方法を提案してください。
$.fn.select2.amd.require([
'select2/utils',
'select2/dropdown',
'select2/dropdown/attachBody'
], function (Utils, Dropdown, AttachBody) {
function SelectAll() { }
SelectAll.prototype.render = function (decorated) {
var $rendered = decorated.call(this);
var self = this;
var $selectAll = $(
'<button type="button">Select All</button>'
);
$rendered.find('.select2-dropdown').prepend($selectAll);
$selectAll.on('click', function (e) {
var $results = $rendered.find('.select2-results__option[aria-selected=false]');
// Get all results that aren't selected
$results.each(function() {
var $result = $(this);
// Get the data object for it
var data = $result.data('data');
// Trigger the select event
self.trigger('select', {
data: data
});
});
self.trigger('close');
});
return $rendered;
}
$("select").select2({
placeholder: "Select Option(s)...",
dropdownAdapter: Utils.Decorate(
Utils.Decorate(
Dropdown,
AttachBody
),
SelectAll
),
});
});
はい、しかし、彼はうまくいっていると言っていますが、これは500を超える項目を選択するとブラウザがハングすることになります。 – rish
@Parthいいえ、私はすべての選択で多くの要素を選択するときにブラウザがハングアップしないようにする必要があります – albert
@albertそれはあなたが選択したすべてに対して1つのチェックボックスを置くこともできますカンマ区切りのフィールド。 – Parth