【发布时间】:2015-01-08 15:55:41
【问题描述】:
我正在使用 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>" }
});
【问题讨论】:
-
有没有人想出如何在 select2 4.0.x 中做到这一点?