我解决了这个由我认为一个比较肮脏的伎俩:
我生成使用f:selectItems的选项如下:
value="#{...}" converter="...">
itemLabel="Localized_Label|EnglishLabel/NorwegianLabel"
/>
生产
Localized_Label|EnglishLabel/NorwegianLabel
然后我jQueried部分我想隐藏label属性(并且配置了Select2以匹配用户输入与所述属性):
$(document).ready(function() {
$(".MySelectField option").each(function(){
tmp=$(this).text().split("|");
$(this).attr('label',tmp[1]);
$(this).text(tmp[0]);
});
$(".MySelectField").select2({
matcher: function(term, text, opt) {
return text.toUpperCase().indexOf(term.toUpperCase())>=0
|| opt.attr("label").toUpperCase().indexOf(term.toUpperCase())>=0;
}
});
});
导致
Localized_Label
与选择二称为在其顶部。
这样,用户就可以获得Select2的英语和挪威语输入的自动完成功能,而不管选择的本地化。