2009-10-14 15 views

risposta

10

dal docs:

 
$(".selector").validate({ 
    submitHandler: function(form) { 
    $(form).ajaxSubmit(); 
    } 
}) 
+0

Purtroppo i documenti sono bunkum. Il codice sopra riportato invia un modulo standard, ma imposta il tipo di contenuto su 'XMLHttpRequest' - se si guarda a ciò che viene inviato con questo, è altrimenti identico a quello che si otterrebbe da un invio standard. Sto cercando di capire come aggiustarlo ora e lo pubblicheremo quando risolverò la soluzione. ref http://stackoverflow.com/questions/18713714/testing-an-ajax-post-using-racktest-how-to-pass-in-data –

+0

La mia soluzione FYI è di modificare i miei test e accettare la realtà che il jQuery Il plug-in Moduli invia i dati del modulo come una stringa param codificata URL, non come hash JSON con stringhe. –

2

Secondo http://malsup.com/jquery/form/#validation è possibile utilizzare l'opzione di beforeSubmitper fornire una funzione di callback che restituisce vero o falso.

In questo callback semplicemente utilizzare il .valid() metodo plug descritto qui http://jqueryvalidation.org/valid

$(document).ready(function() { 
    // jQuery Validation Plugin 
    $("#myForm1").validate(); 

    // jQuery form Plugin 
    var options = { 
     target:  '#output1', // target element(s) to be updated with server  response 
     beforeSubmit: validate,  // pre-submit callback 
     success:  showResponse // post-submit callback 
    }; 

    // bind form using 'ajaxForm' 
    $('#myForm1').ajaxForm(options); 
}); 

// Return validation status from jQuery validate plugin. 
function validate(formData, jqForm, options) { 
    return $('#myForm1').valid(); 
} 
+0

migliore risposta, grazie! – Gonzalingui

Problemi correlati