2017-02-10 193 views
1

我有一个选择框,它依赖于另一个选择框。我使用AJAX来更改第二个(从属)选择框上的选项。另外,我使用的是选择2插件上都selectboxes的,是这样的:Select2重新初始化不起作用

$(document).ready(function() { 
    $('#mySelect2').select2({ 
     // options 
     } 
    }); 
}); 

我的问题是刷新第二选择框后,选择2只从这个选择框消失,表示对我就像一个正常的选择框。在某处,我看到我可以使用销毁并“重新启动”选择。但在mySelect1.onChange事件时,当我使用:

$('#mySelect2').select2("destroy"); 
$('#mySelect2').select2({ 
     // same options 
}); 

它看起来像选择框被销毁,但不会再次初始化。因为经过另一次刷新,我的控制台说:

The select2('destroy') method was called on an element that is not using Select2. 

感谢您的任何答案,我是新来的。

+0

您的选择框是否都包含相同的ID? '#mySelect2'。显示一些HTML –

+0

不,它们不同 '''select name =“subjects []”class =“form-control input-sm select2 select2-hidden-accessible”id =“frm-searchLecturesForm-form-subjects”multiple = “”tabindex =“ - 1”aria-hidden =“true”> ...选项...' '' –

+0

我对它们应用了select2,这两个作品...直到我改变第一选择和刷新数据中的选择选项第二选择“#frm-searchLecturesForm-form-topics” –

回答

0

尝试不破坏select2元素,加载新的datalink然后.trigger('change')link。例如:

// new data arrived... 
var new_data = [...] 

$('#mySelect2').select2({ 
    // update data 
    data: new_data 
}); 
$('#mySelect2').trigger("change");