2009-10-14 22 views

Antwort

10

vom docs:

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

Alas die Dokumentation sind bunkum. Der obige Code erstellt ein Standard-Formular, legt aber den Inhaltstyp auf 'XMLHttpRequest' fest - wenn Sie sich ansehen, was damit eingereicht wird, ist es ansonsten identisch mit dem, was Sie von einem Standard-Submit erhalten würden. Ich versuche herauszufinden, wie ich das jetzt beheben kann und werde es zurückgeben, wenn ich die Lösung ausarbeite. ref http://stackoverflow.com/questions/18713714/testing-an-ajax-post-using-racktest-how-to-pass-in-data –

+0

Meine Lösung FYI ist meine Tests zu ändern und akzeptieren die Realität, dass die jQuery Das Forms-Plug-in sendet die Formulardaten als eine URL-codierte Parameterzeichenfolge, nicht als einen stringifizierten JSON-Hash. –

2

Nach http://malsup.com/jquery/form/#validation können Sie die beforeSubmit Option verwenden, um einen Rückruf zu schaffen, die wahr oder falsch zurückgibt.

einfach In diesem Rückruf verwenden, um die .Gültig() Plugin hier beschriebene Methode 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

beste antwort, danke! – Gonzalingui

Verwandte Themen