2013-04-17 10 views
6

Ho un web razor-mvc e un paio di selezioni su un modulo. Mi legano questo seleziona con il select2 plugin jQuery come questo:Come posso associare jquery select2 a nuovi selettivi aggiunti?

$('select.company_select, select.positions_select').select2(); 

E la mia forma è una forma ajax (ajax da JavaScript, non per Ajax.BeginForm). Il fatto è che quando invio il modulo, aggiungo un altro modulo con i valori inviati del primo modulo, ma i selettori su quel nuovo modulo non applicheranno il plugin select2. So che questo è normale perché il nuovo elemento e dovrebbe essere associato a .on() o .live() ma non so come farlo.

Potete aiutarmi?

+3

Non è possibile utilizzare la delega con il plugin, è necessario inizializzare gli elementi Select2 all'interno della funzione di callback ajax –

risposta

0

State facendo chiamata AJAX in modo da assicurarsi che si ri-init di selezione su qualsiasi altra seleziona si desidera in completo per tutti i nuovi contenitori di selezionare nella pagina ..

così la vostra chiamata AJAX sarà simile

$.ajax({ 
    url: '.../', 
    data..., 
    type..., 
    success: function(data) 
    { 
     $('#newFormAddedID select').select2(); 
    } 

dovrebbe fare il trucco .. si può anche farlo in completa:. funzione (... se il modulo viene aggiunto a prescindere che scendessimo la chiamata AJAX è successo o meno

1

uso ajaxcomplete

$(document).ajaxComplete(function(){ 
    $(".select2").select2(); 
}); 
+1

bella soluzione, ma solo accessibile per caselle di selezione che passa attraverso una richiesta AJAX. Ma non per le selectbox create dinamicamente senza ajax. – algorhythm

Problemi correlati