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;
}
我正在尝试连接 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;
}