Optgroup + 值倍数 select with selected2?

Optgroup + value multiple select with selected2?

我正在尝试连接 optgroup 但 select 的值。 在 jsFiddle 中,当 select 是简单的 selection 时,它可以正常工作。 当 selecting São Paulo 值时,正确的结果是:Sudeste - São Paulo 但是当我将 select 更改为多次随机播放时。

看看jsFiddle

您的 format(item) 函数未获取所选项目的父项 optgroup 的原因是,当该函数运行时,option 尚未真正被选中。此时,select2 插件尚未在基础 select 标记中将 option 标记为选中。

调试format(item)可以看到函数第一次运行时$('#estados').find(':selected')是一个空数组

相反,您需要做的是从 item 参数中获取 option 元素,然后在查询中使用它来获取 optgroup.

function format(item) {
  // opt = $('#estados').find(':selected');
  // sel = opt.text();
  // og = opt.closest('optgroup').attr('label');

  var og = $(item.element[0]).closest('optgroup').attr('label');
  return og+'-'+item.text;
}