2009-10-14 20 views

Odpowiedz

10

od docs:

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

Niestety docs to bzdura. Powyższy kod przesyła standardowy formularz, ale ustawia typ zawartości na "XMLHttpRequest" - jeśli spojrzeć na to, co jest przedkładane, to jest identyczne z tym, jakie otrzymasz ze standardowego zgłoszenia. Próbuję ustalić, jak rozwiązać ten problem teraz i odeślę ponownie, gdy opracuję rozwiązanie. ref http://stackoverflow.com/questions/18713714/testing-an-ajax-post-using-racktest-how-to-pass-in-data –

+0

Moje rozwiązanie FYI to zmodyfikować moje testy i zaakceptować rzeczywistość, którą jQuery Wtyczka Forms wysyła dane formularza jako ciąg znaków zakodowany w adresie URL, a nie jako zawężony skrót JSON. –

2

Według http://malsup.com/jquery/form/#validation można użyć beforeSubmit Opcja dostarczenie zwrotnego, która zwraca true lub false.

W tym zwrotnego wystarczy użyć Obowiązuje() metoda wtyczki opisanej tutaj 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

najlepsza odpowiedź, dziękuję! – Gonzalingui

Powiązane problemy