Muszę obsłużyć zdarzenie przesyłania formularza i ewentualnie zablokować pocztę. dawny:
$("#myForm").submit(function (){
if (someCondition)
return true //post;
else
return false //dont post
});
Ta część działa, ale teraz mam wtyczkę jquery.validate z jquery.validate.unobtrusive.
Chcę uruchomić tę część kodu po sprawdzanie poprawności jest wykonywane (i tylko wtedy, gdy formularz jest prawidłowy).
Jakieś pomysły?
Kilka wyjaśnień
Wtyczka sprawdzania poprawności to wtyczka jquery.validate z basista
Używam Microsoftów " dyskretny (który jest wysyłany wraz z MVC3) wtyczką na wierzchu. Myślę, że to w validationInfo
funkcja w jquery.validate.unobtrusive.js, aby zadanie zostało wykonane ...
Odpowiedzi:
1 dla odpowiedzi № 1Spróbuj tego:
$("#myform").validate({
submitHandler: function(form) {
if (someCondition)
return true; //post
else
return false; //dont post
}
}
});
0 dla odpowiedzi nr 2
Nie jestem pewien, czy dobrze rozumiem twoje pytanie, ale spójrz na submitHandler
opcja w plugin jQueryValidate:
Oddzwonienie do obsługi faktycznego przesłania, gdy formularz jest ważny. Pobiera formularz jako jedyny argument. Zastępuje domyślne przesłanie.
http://docs.jquery.com/Plugins/Validation/validate
0 dla odpowiedzi № 3
Dzięki @Rory osiągnąłem to, co chciałem. Ponieważ jquery.validator.unobtrusive obsługuje wywołanie jquery.validate i nie zapewnia sposobu na przechwycenie czegokolwiek (tak, to jest wtyczka Microsoft ...), rozwiązaniem jest użycie submitHandler
opcja taka jak sugerowała Rory, ale przez cały czas setDefault
metoda:
if (typeof ($.validator) != "undefined") {
$.validator.setDefaults({
submitHandler: function (form) {
if (someCondition)
return true; //post
else
return false; //dont post
}
});
}