2012-07-18 10 views
5

Sto utilizzando il plug-in di completamento automatico dell'interfaccia utente jQuery per creare una barra di ricerca rapida che compilerà un elenco a discesa di elementi corrispondenti.Completamento dell'interfaccia utente jQuery - cattura gli errori HTTP dalla sorgente

Tutto funziona correttamente, ma mi piacerebbe preparare il mio plugin di ricerca per gestire anche gli errori HTTP provenienti dalla chiamata Ajax.

Non ho trovato un modo per gestire questo. Ho letto la documentazione: http://jqueryui.com/demos/autocomplete/ ma sembra che non ci sia nessun evento o callback chiamato "errore" che potrebbe essere utilizzato per questo scenario.

Desidero ricevere una casella di avviso che indica all'utente che si è verificato un errore sul lato server.

Qualcuno potrebbe darmi un esempio di questo?

Grazie!

risposta

11

Da http://jqueryui.com/demos/autocomplete/ è possibile utilizzare l'origine come una funzione che accetta due parametri, richiesta e risposta. Quindi un modo possibile per gestire gli errori http è quello di catturarli usando una chiamata jQuery ajax come segue:

$("#autocomplete").autocomplete({ 
     minLength: 2, 
     source: function(request, response) { 
      $.ajax({ 
       url: "query.php", 
       data: { query: request.term}, 
       success: function(data){ 
        response(data); 
       }, 
       error: function(jqXHR, textStatus, errorThrown){ 
        alert("error handler!");       
       }, 
       dataType: 'json' 
      }); 
     } 
    });​ 
+0

Impressionante! Grazie! – papaiatis

+1

Potrebbe voler aggiungere '$ (" # completamento automatico "). RemoveClass (" ui-autocomplete-loading ");' al gestore degli errori per rimuovere lo spinner. – Leonid

Problemi correlati