gpt4 book ai didi

javascript - 选择 2 : add new tag dynamically using code

转载 作者:数据小太阳 更新时间:2023-10-29 04:40:25 24 4
gpt4 key购买 nike

我正在使用 select2 进行标记,并且对其进行了设置,以便用户也可以添加新标记。我正在处理的问题是验证用户输入并将经过清理的标签添加到选择中。

更具体地说,当用户在标签中输入空格时,我使用 formatNoMatches 显示 js 链接以清理标签,然后以编程方式添加标签。这段代码似乎运行没有错误,但是当调用 sanitize 时,输入的所有选择都被清除。

任何我可能出错的线索?

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>" }
});

最佳答案

只有这个解决方案适合我:

function convertObjectToSelectOptions(obj){
var htmlTags = '';
for (var tag in obj){
htmlTags += '<option value="'+tag+'" selected="selected">'+obj[tag]+'</option>';
}
return htmlTags;
}
var tags = {'1':'dynamic tag 1', '2':'dynamic tag 2'}; //merge with old if you need
$('#my-select2').html(convertObjectToSelectOptions(tags)).trigger('change');

关于javascript - 选择 2 : add new tag dynamically using code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27844227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com