使用awesome PostgreSQL LIKE
operator和Ajax数据源,我想知道如何获取所选选项的文本值。
使用正常的select
元素,我会做这样的事情:
$('#myselect option:selected").each(function() {
var $this = $(this);
if ($this.length) {
console.log($this.val(), $this.text());
}
});
但这并不适用于select2
,因为Ajax调用填充的<option>
值没有文本。
同时,使用文档中建议的.val()
来获取所选值只会返回一个ID数组,而不是显示元素的文本。
有什么方法吗?
JSFiddle在这里演示问题:jQuery select2 plugin
答案 0 :(得分:0)
您可以将它们存储在对象中并再次检索:
var selectedValues = {}
$(".select2").select2({
ajax: {
url: "https://api.github.com/search/repositories",
dataType: 'json',
delay: 250,
data: function (params) {
return {
q: params.term,
};
},
processResults: function (data, page) {
return {
results: data.items
};
},
cache: true
},
escapeMarkup: function (markup) { return markup; },
minimumInputLength: 1,
templateResult: function(repo) {
return repo.name + ' (' + repo.full_name + ')';
},
templateSelection: function(repo) {
selectedValues[repo.id] = repo.full_name;
return repo.name + ' (' + repo.full_name + ')';
}
});
$('#clickme').on('click', function() {
var id = $('.select2').val();
console.log(selectedValues[id]);
});