Próbuję utworzyć formularz jQuery, który nie składa się, dopóki nie przejdzie walidacji („jestem nowym uczniem”), ale otrzymuję ten błąd z konsoli: Nieprzechwycony błąd typu: $ (...). Unbind nie jest funkcją
$("form").submit(function(e){
e.preventDefault();
var error = "";
//MY VALIDATION CODE HERE
if(error != "") {
$("#error").html("Please check the following error(s)" + error);
} else {
$("form").unbind("submit").submit(); <<< CONSOLE ERROR HERE
}
});
Odpowiedzi:
4 dla odpowiedzi № 1Wierzę, że będzie to kwestia wersji jQuery. Jeśli korzystasz z kursu CompleteWebDev Roba Percivala, wideo nie zostało zaktualizowane (w czasie pisania tego tekstu), aby rozwiązać ten problem.
.Bind / .unbind są już przestarzałe i powinieneś używać .on / .off w momencie pisania.
Użyj poniższego kodu i powinien działać teraz:
$ („formularz”). off („wyślij”). submit ();
0 dla odpowiedzi nr 2
Mój kod nie działał, a później dowiedziałem się, że metody jbuery .bind / .unbind są przestarzałe i aby rozwiązać ten problem e.preventDefault();
wewnątrz IF, więc nie zadzwonię, dopóki walidacja się nie powiedzie, usunąłem całą część powiązania.
0 dla odpowiedzi № 3
Możemy również uniknąć używania e.preventDefault (); lub $ („formularz”). off („prześlij”). submit (); zwracając prawdę i fałsz;
<script type="text/javascript">
$("form").submit(function (e){
// e.preventDefault();//jQuery, it prevent the default action of the event
var error = "";
if($("#email").val() == ""){
error += "The email field is required.<br>";
}
if($("#subject").val() == ""){
error += "The subject field is required.<br>";
}
if($("#content").val() == ""){
error += "The content field is required.";
}
if(error != ""){
$("#error").html("<div class="alert alert-danger" role="alert">" +
"<p><strong>There were error(s) in your form:</strong></p>"+ error +
"</div>");
return false;
}else{
return true;
}
});