Etiketleme için select2 kullanıyorum ve bir kullanıcı yeni etiketler ekleyebilecek şekilde ayarlıyorum. Çalıştığım sorun, kullanıcı girişini onaylamak ve dezenfekte edilmiş etiketi seçime eklemek.Select2: kodu kullanarak dinamik olarak yeni etiket ekle
Daha net olmak gerekirse, bir kullanıcı bir etikette boşluk girdiğinde, etiketi sterilize etmek için bir js bağlantısı görüntülemek üzereNoMatches biçimini kullanıyorum ve ardından etiketi programsal olarak ekliyorum. Bu kod hatasız çalışır, ancak sanitize çağrıldığında, girişin tüm seçimleri temizlenir.
Yanlış gidebileceğimiz ipuçları var mı?
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>" }
});
Bu yalnızca çalışır. –