Interakcja między walidacją JQuery a programem obsługi formularza: Złamane, czy robię coś złego?

Niektóre z moich formularzy wymagają walidacji, dla których używam wtyczki walidacyjnej JQuery.

Niektóre z moich formularzy wymagają niestandardowego programu obsługi zgłoszeń (który warunkowo wyświetla okno dialogowe potwierdzenia przed wysłaniem, niezależnie od sprawdzania poprawności). Załączam program obsługi do takiego formularza:

function confirmHandlerAttach(form, handler) {
  $(form).off("submit", confirmHandlerDefault);
  $(form).on("submit", handler);
}

Zarówno walidacja, jak i program obsługi zgłoszeń są dołączone w dokumencie gotowy na podstawie klas. Niezależnie, obie działają dobrze. Problem polega na tym, że wydaje się, że procedura obsługi formularza jest wywoływana niezależnie od tego, czy sprawdzanie poprawności się powiedzie. Zobacz uproszczony przykładtutaj.

To nie jest to, czego bym się spodziewał. Wydaje mi się, że walidacja uniemożliwiłaby uruchamianie zarówno zgłoszenia, jak i programu obsługi zgłoszeń. Czy robię coś złego, czy moje oczekiwania są złe?

Zdaję sobie sprawę, że mogę zamiast tego użyć właściwości submitHandler walidacji i jeśli to konieczne, przejdę tę trasę. Ale ponieważ walidacja i potwierdzenie (lub jakikolwiek inny program obsługi zgłoszeń) są naprawdę niezależnymi funkcjami, wydaje się wstydem, że trzeba zmienić wszystkie formularze, aby przekazać procedury obsługi do obsługi wtyczki sprawdzania poprawności JQuery, na wypadek, gdyby jakaś forma korzystała z walidacji.

questionAnswers(1)

yourAnswerToTheQuestion