select2 jQuery插件:获取所选选项的文本值?
使用Ajax数据源,我想知道如何获取所选选项的文本值 使用正常的select2 jQuery插件:获取所选选项的文本值?,jquery,jquery-select2,Jquery,Jquery Select2,使用Ajax数据源,我想知道如何获取所选选项的文本值 使用正常的select元素,我将执行以下操作: $('#myselect option:selected").each(function() { var $this = $(this); if ($this.length) { console.log($this.val(), $this.text()); } }); 但是这不适用于select2,因为Ajax调用填充的值没有文本 同时,按照文档中的建议使用.val()来
select
元素,我将执行以下操作:
$('#myselect option:selected").each(function() {
var $this = $(this);
if ($this.length) {
console.log($this.val(), $this.text());
}
});
但是这不适用于select2
,因为Ajax调用填充的
值没有文本
同时,按照文档中的建议使用.val()
来获取所选值只会返回一个ID数组,而不是显示元素的文本
这有什么办法吗
JSFiddle在这里演示这个问题:您可以将它们存储在一个对象中,然后像这样再次检索:
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]);
});
@是的,这就是答案。非常感谢。