我正在使用Select2进行标记应用程序。但是,我在删除项目上的现有标记时遇到了问题。它是不一致的,但似乎取决于项目; 在以下示例中,我始终可以删除标签“Bugs”,但无论我尝试删除的顺序如何,其他标签都无法删除。
控制台日志显示已从数据中删除了删除的项目,正如应该的那样,而已删除事件将正确的项目标识为已删除,但在“val”中没有看到任何更改,因此没有向服务器发送任何更改。
代码:
控制台日志显示已从数据中删除了删除的项目,正如应该的那样,而已删除事件将正确的项目标识为已删除,但在“val”中没有看到任何更改,因此没有向服务器发送任何更改。
代码:
<input id="id_tags" name="tags" type="text" value="Bugs, Existentialism, Kafkaesque" />
$("#id_tags").select2({
tokenSeparators:[","],
placeholder: "Start typing your tags",
createSearchChoice: function(term, data){
if ($(data).filter(function(){
return this.fields.name.localeCompare(term) === 0;
}).length === 0) {
return {
id: term,
fields: {"name": term}
};
}
},
multiple:true,
ajax: {
url: window.location.origin+'/tagsearch/',
dataType: 'json',
data: function( term, page ) {
return {tag: term};
},
results: function (data, page) {
return {results: data};
}
},
formatResult: tagformat,
formatSelection: tagformat,
maximumSelectionSize: 20,
formatSelectionTooBig: function(limit) {
return "Stories are limited to " + limit + " tags.";
},
initSelection : function(element, callback){
var data = [];
$(element.val().split(",")).each(function () {
data.push({id:this, fields:{name:this}});
});
callback(data);
}
});
$('#id_tags').on("select2-removed", function(e){
var data = $("#id_tags").select2("data");
console.log($('#id_tags').select2('val'));
console.log("removed "+ e.choice.fields.name);
console.log(data);
});