私はSelect2を使用して大きなデータリストを管理しています。ユーザは、リスト内の各項目を手動で入力して一致させるのではなく、一度に様々な項目を選択するために、リストをSelect2フィールドに貼り付けることを望んでいる。リストをselect2フィールドに貼り付け、リスト内の各アイテムにマッチさせることは可能ですか?
tokenSeparators
を使用して、リスト内の項目を区切りました。これとdemo on tokens in the documentationは、私が望んでいることは可能だと信じていますが、今まで私は喜んでいませんでした。
私はSelectセレクトをインスタンス化するために使用するコードは次のとおりです。
$('input').select2({
width: 'element',
matcher: function (term, text) {
return text.toUpperCase().indexOf(term.toUpperCase()) === 0;
},
minimumInputLength: 3,
multiple: true,
data: tagList, // tagList is an array of objects with id & text parameters
placeholder: 'Manage List',
initSelection: function (element, callback) {
var data = [];
$.each(function() {
data.push({id: this, text: this});
});
callback(data);
},
tokenSeparators: [',', ', ', ' ']
});
ただ、他のすべての点SELECT2フィールドの作品に、明確にします。リストがフィールドに貼り付けられても、何も一致しないだけです。貼り付けられたリストのすべての項目をテストしたいと思います。これは可能ですか?あれば、どうですか?
編集:私は、次のコードを試してみましたが、それは動作していないよう:http://jsfiddle.net/KCZDu/:
$('body').on('paste', '#s2id_list-unitids .select2-input', function() {
var that = this;
setTimeout(function() {
var tokens = that.value.split(/[\,\s]+/);
$('#list-unitids').val(tokens, true);console.log($('#list-unitids').select2('val'));
}, 1);
});
そして、ここでは、私が作成したフィドルです。
ありがとうございます!今週末はリラックスできます! :) –