2012-02-29 19 views
6

riferimento al plugin: http://malsup.com/jquery/form/#getting-startedjQuery Plugin Modulo non risponde bene con FireFox

Recentemente ho provato ad aggiornare dal vecchio v2.28 a v2.96, ma non posso, come sembra che vi sia un nuovo bug introdotto quando cercando di utilizzare FireFox per inviare un modulo che è stato caricato utilizzando un'altra chiamata Ajax.

Ho due tipi di moduli: quelli che carico senza una chiamata Ajax e altri che carico dal server. Io uso ajaxForm() per il legame:

function bindAjaxResponse() { 
    // Bind for Ajax POST 
    var options = { 
      delegation: true, 
      //target:  '#output1', // target element(s) to be updated with server response 
      beforeSubmit: showRequest, // pre-submit callback 
      success:  showResponse // post-submit callback 
     }; 

    $('#my_form').ajaxForm(options); 
} 

Sia Chrome e IE, il codice funziona bene ed entrambi showRequest e showResponse sono chiamati e riempito con i parametri corretti. Con l'ultima versione di FireFox (v10.0.2) viene visualizzato soloRichiesta, ma showResponse non viene mai chiamato. FireBug mostra chiaramente che non viene eseguita alcuna richiesta. Non ci sono messaggi di errore né avvisi nella finestra della console. Non ho davvero idea di cosa possa scatenare una tale differenza di comportamento.

Si prega di ricordare che tutto questo codice ha funzionato perfettamente su tutti i browser nella versione precedente v2.28

Chiunque?

domanda cross-postato su https://forum.jquery.com/topic/jquery-form-plugin-not-responding-well-with-firefox

Grazie

+1

È questo errore? https://github.com/malsup/form/issues/171 Ho appena testato con l'ultima versione e funziona perfettamente, prova di nuovo l'aggiornamento. – Tjkoopa

+0

Sì, sembra così. Ora funziona con v3.02 – Collector

risposta

4

Sembra c'era un bug in v2.96 e come ora ho aggiornato alla v3.02 è risolto.

6

ho avuto problemi con le forme jQuery pure, così mi basta chiamare $ .ajax direttamente:

function bindAjaxResponse() { 
    // Bind for Ajax POST 

    $('#my_form').submit(function() { 
     var datastream = $(this).serialize(); 

     console.log('Submitting form'); 

     $.ajax({ 
      type: 'post', 
      url: $(this).form.attr('action'), 
      data: datastream, 
      timeout: 2000, 

      error: function() { 
       console.log("Failed to submit"); 
      }, 
      success: function(data) { 
       console.log('Successfully submitted form'); 
       console.log(data); 
      } 
     }); 

     return false; 
    }); 
} 
+0

Grazie per la risposta, ma per fortuna questo bug è stato risolto. Continuo a credere che l'uso del plug-in per i moduli sia migliore della riscrittura di tutto ciò che potrebbe non essere compatibile come il codice scritto e mantenuto su base permanente. – Collector

+0

@ ub3rst4r Ciao, ho problemi con un'applicazione che sto cercando di scrivere usando JQuery (plugin per moduli JQuery in particolare), che ho postato qui: http://stackoverflow.com/questions/20729645/jquery-file-upload- utilizzando post-redirect-to-post-risposta. Per favore, dai un'occhiata. C'è una taglia per la risposta giusta. – EternallyCurious

Problemi correlati