2017-02-10 434 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");