【发布时间】:2013-02-10 20:11:05
【问题描述】:
我使用Select2 进行标记。它就像一个魅力,但我有一个额外的要求:匹配器应该匹配的不仅仅是项目的文本。
让我解释一下。 matcher 函数有两个参数,term 和 text。这允许我们比较给定的标签和输入的文本。但是,如果我为每个标签定义附加数据(通过tags 函数),我将无法在匹配器中访问它。
示例代码:
// #myinput is a hidden input field
$('#myinput').select2({
matcher: function(term, text) {
return text.toUpperCase().indexOf(term.toUpperCase()) >= 0;
},
tags: function() {
var tags = [];
$('#myselect').find('option').each(function(index, option) {
option = $(option);
tags.push({
id: option.val(),
text: option.text(),
category: option.data('category')
});
});
return tags;
}
})
我为每个标签设置了强制的id 和text 属性。此外,还有一个名为category 的字符串。我想匹配文本和类别,而不仅仅是文本。
这可能吗?
【问题讨论】:
标签: javascript jquery tags jquery-select2