select2 - 制作所选选项文本的数组,其中键是选项值

Min*_* Li 2 jquery jquery-select2 jquery-select2-4

使用最新的 select2 和多个选项。当用户选择任何选项时,我需要创建所选选项值和文本的数组。为了获得价值,我使用:

var id=$('#select2_dropdown').val();
Run Code Online (Sandbox Code Playgroud)

它使数组像id[]="value1", id[]="value2",等等。

现在我需要为标签之间的文本创建相同的数组<option>在使用 jQuery 从下拉列表(选择框)获取选定文本中找到了解决方案,因此添加了以下代码:

var name=$("#select2_dropdown option:selected").text();
Run Code Online (Sandbox Code Playgroud)

虽然它非常适合单选,但尝试将它与多选一起使用只会产生一个类似的字符串name=optiontext1optiontext2(所有选定选项的字符串合并为一个)

我怎样才能让它看起来像这样:name[value1]=optiontext1, name[value2]=optiontext2

尝试过这个但没有任何运气:

var id=$("#select2_dropdown option:selected").text();
var name[id]=$("#select2_dropdown option:selected").text();
Run Code Online (Sandbox Code Playgroud)

Ada*_*arr 5

您可以在 select2 上执行 jQuery.each。

$("#select2_dropdown option:selected").each(function(){

  var option = $(this);

  var label = option.text();
  var value = option.value();

});
Run Code Online (Sandbox Code Playgroud)

您可以将这些值推入一个对象,然后根据您的需要格式化数据。

$("#select2_dropdown option:selected").each(function(){

  var option = $(this);

  var label = option.text();
  var value = option.value();

});
Run Code Online (Sandbox Code Playgroud)
$('.select2').select2({ placeholder: 'Please choose one.'});

$('#stringify').on('click',function(){
	
  var result = { };
	$('#feeling :selected').each(function() { var o = $(this); result[o.text()]=o.val() });
  
  $('#output').text(JSON.stringify(result));

});
Run Code Online (Sandbox Code Playgroud)
.select2 {
  min-width:200px;
}

.output {
  margin-top: 25px;
}
Run Code Online (Sandbox Code Playgroud)

示例展示了如何对对象执行此操作,然后将其转换为 JSON 字符串。