【发布时间】:2018-08-10 11:50:26
【问题描述】:
我想根据第一个 select 使用 Select2 选择分组的国家/地区。我正在尝试使用基本的Select2 代码,但是带有data-group 的第二个select 无法正常工作。
我的问题是:
更改第一个
select(大陆)选项,然后移动到第二个(国家)并选择一个国家,现在回到大陆并更改为另一个。转到第二个并选择另一个国家,它不会选择。
示例:选择欧洲 > 选择意大利 > 选择美国 > 选择阿根廷 > 再次选择欧洲 > 选择任何国家 > 阿根廷将保留为所选国家。
这是一个小视频,展示了正在发生的问题:Youtube Link
我还在 sn-p 上附加了我的工作代码。
$(document).ready(function() {
$('.js-example-basic-single').select2();
});
$(function(){
$('#groups').on('change', function(){
var val = $(this).val();
var sub = $('#sub_groups');
$('option', sub).filter(function(){
if (
$(this).attr('data-group') === val
|| $(this).attr('data-group') === 'SHOW'
) {
if ($(this).parent('span').length) {
$(this).unwrap();
}
} else {
if (!$(this).parent('span').length) {
$(this).wrap( "<span>" ).parent().hide();
}
}
});
});
$('#groups').trigger('change');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet"/>
<select class="js-example-basic-single" id="groups" style="width:50%;">
<option value='America'>America</option>
<option value='Europe'>Europe</option>
<option value='Asia'>Asia</option>
<select>
<select class="js-example-basic-single" id="sub_groups" style="width:50%;">
<option data-group='SHOW' value='0'>-- Select --</option>
<option data-group='America' value='Argentina'>Argentina</option>
<option data-group='America' value='Brazil'>Brazil</option>
<option data-group='America' value='Chile'>Chile</option>
<option data-group='Europe' value='Italy'>Italy</option>
<option data-group='Europe' value='France'>France</option>
<option data-group='Europe' value='Spain'>Spain</option>
<option data-group='Asia' value='China'>China</option>
<option data-group='Asia' value='Japan'>Japan</option>
<select>
这个问题有什么解决办法吗?
【问题讨论】:
-
抱歉,我看不出有什么问题,我错过了什么?你到底有什么问题?
-
在 sn-p @CalvinNunes 上运行我的代码后,您是否尝试过该代码?在第一次选择后,移动到另一个大陆(即从美国到欧洲),国家/第二个选项将无法正常工作。
-
我已经编辑了我的问题 (y)
-
我选择“亚洲”,然后第二个选项显示我:中国和日本。我选择“美国”,然后第二个选项显示:阿根廷、巴西、智利。这里有什么问题? (编辑后测试)
-
好的,现在我明白了这个问题,但还没有找到解决方案(我编辑了你的问题,让它更清楚地理解)也许有人现在可以提供帮助
标签: javascript jquery html jquery-select2