Próbuję utworzyć formularz, który jest sprawdzany przez interfejs Parsley.js i przesłany asynchronicznie. Formularz nazywa się #contactForm, a przycisk przesyłania to #sendData, błąd pojawia się, gdy kliknę przycisk Wyślij w pustej lub nieprawidłowej formie. Oczekuję wyświetlenia alertu "Błąd" z nieprawidłowych danych formularza, ale zamiast tego po prostu kontynuuje się stan Else, a dane są przetwarzane przez contactForm.php.Przesyłanie formularzy asynchronicznych za pomocą parsley.js
$(document).ready(function() {
// submit data on click and check if valid
$('#sendData').click(function(e) {
//check if valid with parsley
var valid = $('#contactForm').parsley ('validate');
if (valid === false)
{
e.preventDefault();
}
else
{
$.post("contactForm.php", $("#contactForm").serialize());
}
});
});
odpowiedniego rozwiązania poniżej.
Jeśli wynikiem walidacji jest wartość logiczna, Twój warunek powinien być "if (! Valid)" lub "if (valid === false)". Rozważ także dodanie do obsługi kliknięcia parametru "e" i zamiast "zwracaj", aby anulować zdarzenie, wykonaj polecenie 'e.preventDefault();'. – plalx
Podają również na [ich stronie] (http://parsleyjs.org/documentation.html#parsleyform), że należy usunąć atrybut 'data-validate =" pietruszka "' z formularza, aby nadpisać domyślne przetwarzanie. – plalx
Dzięki za poradę @plalx usunąłem walidację danych = "pietruszka" z atrybutów formularza i skorygowałem warunek dla wartości logicznej. Z jakiegoś powodu wciąż mam ten sam problem. Ah - zapomnij o mnie. Źle odczytałem twój komentarz i rozwiązałem go. Dzięki jeszcze raz. – nobody