2015-05-27 19 views
5

Sto usando Select2 per fornire funzionalità di selezione dinamica sulla mia pagina.Select2 errori - nessuna risposta

Ecco il codice: -

$("#Spon_Index").select2({ 
    placeholder: "Type to select a sponsor", 
    minimumInputLength: 3, 
    multiple: false, 
    width: 400, 
    ajax: { 
     url: "../control/autocomplete_sponsor.aspx", 
     data: function(term) { 
      return term; 
     }, 
     results: function(data, page) { 
      alert(results); 
      return { 
       results: data 
      } 
     }, 
     formatResult: function(data) { 
      return data.text; 
     }, 
     formatSelection: function(data) { 
      return data.id; 
     }, 
     escapeMarkup: function(m) { 
      return m; 
     } 
    } 
}); 

Utilizzando Fiddler, posso vedere che sto ricevendo il ritorno corretto dal autocomplete_sponsor.aspx, ad esempio: -

[{"id":"12","text":"Smiths"},{"id":"118","text":"Dr Smiths"}] 

Tuttavia, nulla è succede con il controllo a tutti. Esso si blocca su 'Ricerca', o niente ... Ho controllato gli strumenti di sviluppo e non v'è un errore: -

Uncaught TypeError: Cannot read property 'slice' of undefined 

Ho guardato alcune altre soluzioni presenti sul SO, e ha cercato vari refactoring di il mio codice per far funzionare tutto questo, ma ora sono ufficialmente a corto di idee ... sperando che sia qualcosa di veramente semplice che mi è sfuggito.

+0

Se è possibile includere il traceback per quell'errore, potrebbe fornire alcune informazioni su quale sia il problema. –

risposta

4

Select2 sembra che abbia bisogno di un oggetto Javascript invece di una stringa JSON. Il seguente codice è per select2 v4.0.3, quindi results è stato sostituito da processResults.

$("#Spon_Index").select2({ 
    placeholder: "Type to select a sponsor", 
    minimumInputLength: 3, 
    multiple: false, 
    width: 400, 
    ajax: { 
     url: "../control/autocomplete_sponsor.aspx", 
     data: function(term) { 
      return term; 
     }, 
     processResults: function(data, page) { 
      return { results: JSON.parse(data) }; 
     }, 
    } 
}); 
Problemi correlati