私はタグ付けにselect2を使用しています。ユーザーが新しいタグを追加できるように設定しています。私が扱っている問題は、ユーザエントリを検証し、選択に墨塗りタグを追加することです。Select2:コードを使用して新しいタグを動的に追加
具体的には、ユーザーがタグにスペースを入力すると、formatNoMatchesを使用してjsリンクを表示してタグをサニタイズし、プログラムでタグを追加します。このコードはエラーなしで実行されるようですが、サニタイズが呼び出されると入力のすべての選択がクリアされます。
私は間違っているかもしれない手掛かりはありますか?
var data=[{id:0,tag:'enhancement'},{id:1,tag:'bug'},{id:2,tag:'duplicate'},{id:3,tag:'invalid'},{id:4,tag:'wontfix'}];
function format(item) { return item.tag; }
function sanitize(a){
$("#select").select2('val',[{
id: -1,
tag: a
}]);
console.log(a);
};
$("#select").select2({
tags: true,
// tokenSeparators: [",", " "],
createSearchChoice: function(term, data) {
return term.indexOf(' ') >= 0 ? null :
{
id: term,
tag: term
};
},
multiple: true,
data:{ results: data, text: function(item) { return item.tag; } }, formatSelection: format, formatResult: format,
formatNoMatches: function(term) { return "\"" + term + "\" <b>Is Invalid.</b> <a onclick=\"sanitize('"+ term +"')\">Clear Invalid Charecters</a>" }
});
のみ有効です。 –