return false nicht zu stoppen Formular Absenden
Ich bin mir ziemlich sicher, das sollte auch nicht so schwer wie es ist. Ich habe ein Formular, läuft die folgende Funktion onsubmit:
function FORMVALIDATE_add_rota_entry() {
var rota_date = $("#rota_date").val();
var rota_id = $("#rota_id").val();
var am_pm = $("#am_pm").val();
if(rota_date == "")
{
alert("Please enter a date.");
return false;
}
if(rota_id == "error")
{
alert("Please select a rota from the list.");
return false;
}
//check if that rota has already been entered for that date and am/pm
$.ajax({
async:false,
type:"POST",
url:"/modules/rotas/check_rota_entry_existence",
data:{rota_date:rota_date, rota_id:rota_id, am_pm:am_pm},
success: function(result) {
if(result != "0")
{
alert("This rota has already been added to this date, "+am_pm+".");
return false;
}
}
});
}
Es heißt im form-tag durch den folgenden:
onsubmit="return FORMVALIDATE_add_rota_entry();"
Und es funktioniert gut auf den ersten beiden, rota_date und rota_id, mit den Warnungen kommen, wenn Sie sollten, und Sie stoppen die form von der Vorlage, aber wenn es um den ajax-Aufruf, macht es fein, gibt das richtige Ergebnis, Warnungen, wenn es sollte, aber das return false scheint nicht zu stoppen Sie das Formular Absenden. Hat jemand irgendwelche Ideen haben, da bin ich überfragt!
Dank!
InformationsquelleAutor Helen Danger Burns | 2012-08-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie tun es falsch. Die Art und Weise Sie es tun, sollten Sie lassen Sie die Funktion false zurückgeben immer:
nur zum Zweck der
return false;
im if-Anweisungen dienen, es zu verhindern, dass der ajax-code ausgeführt werden. Aber es sollte am Ende der Funktion zu.Dies sollte ein einfacher fix tho:
onsubmit="FORMVALIDATE_add_rota_entry();return false;"
e.preventDefault()
funktioniert nicht in deronsubmit
Attribut, so möchten Sie vielleicht zu nehmen, dass ein Teil (nur die erste alternative).vielen Dank für die headsup
Hi, vielen Dank für Ihre Antwort, ich habe die letzten return false in die Funktion statt auf das onsubmit-aber jetzt ist es nie können das Formular Einreichen, selbst wenn alle drei Prüfungen sind ok. Irgendwelche Ideen?
InformationsquelleAutor Nicolas Brown
Entfernen:
Unten Ihre Funktion hinzufügen (wo
my-form
ist die id des Formulars):Ändern:
:
Und in Ihrer Funktion ändern:
zu
Wird dies nicht immer halt das Formular als ajax-request asynchron ist und der code darin nicht ausgeführt, in der Zeit zu stoppen die form Prozess.
async: false
?async: false
ist eine wirklich schlechte Idee...Nach Ausgaben eine gute Zeit mit
onsubmit
stieß ich auf diese Antwort, und das funktionierte wirklich toll! Ich Frage mich, warum duonsubmit
funktioniert nicht, obwohl eine Menge Leute in diesem forum schlagen.InformationsquelleAutor iambriansreed
Ok, also nach dem Versuch der obigen Lösungen die kein absoluter Erfolg, und ich kam auf meine eigenen. Ich ditched das form-element komplett aus und schickte die drei Werte onclick als unten:
Dann, die Funktion wurde wie folgt:
Ist alles so funktioniert wie es sollte!
Dank für jeden input 🙂
}
InformationsquelleAutor Helen Danger Burns
Versuchen Sie es mit
event.preventDefault()
kurz vor derreturn
- Anweisung.return false
tut dies bereits.InformationsquelleAutor Apurv
Anstatt
versuchen Sie es mit
Müssen Sie möglicherweise
return true;
am Ende Ihrer Funktion.InformationsquelleAutor Oncel Umut TURER