Ich bin wirklich neu bei Javascript und stolperte über das Schlüsselwort return
. Was ist im Wesentlichen der Unterschied zwischen diesen beiden Aussagen?
<input type="checkbox" onclick="doAlert()" />
vs
<input type="checkbox" onclick="return doAlert();" />
Im Wesentlichen haben beide die gleichen Ergebnisse zurückgegeben und die Funktion aufgerufen, aber gibt es noch mehr? Jede Hilfe sehr geschätzt :). Vielen Dank!
Wenn Sie false von der Funktion zurückgeben, wird der Effekt der Überprüfung abgebrochen. Da das native von Funktionen, die in html-Eigenschaften geschrieben wurden (es wurde zu einer neuen lokalen Funktion geworden ist), wird die HTML-Funktion ohne das Wort "return" nur ausgeführt, wenn die Funktion ausgeführt wird.
function doAlert() {
if(some_condition)
return false;
else
return true;
}
function some_local_function() {
doAlert();
}
Die Funktion some_local_function
gibt keinen Wert zurück, obwohl doAlert
zurückgegeben wird.
Wenn Sie "return" schreiben, haben Sie die zweite Funktion wie folgt geschrieben:
function some_local_function() {
return doAlert();
}
dadurch bleibt der Rückgabewert von doAlert erhalten. Wenn dies zutrifft, wird die Aktion ausgeführt (das Kontrollkästchen wird markiert), andernfalls wird sie abgebrochen.
Sie können Live-Spiele hier sehen: http://jsfiddle.net/RaBfM/1/
Einige HTML-Elemente weisen JS-Ereignisse auf, die sich bei der Rückgabe von true/false anders verhalten. Zum Beispiel:
<input type='submit' value='Click Me' onSubmit='ValidateForm();'>
... vs ...
<input type='submit' value='Click Me' onSubmit='return ValidateForm();'>
Im zweiten Fall, wenn die ValidateForm
-Funktion false zurückgegeben hat, wird das Formular nicht gesendet, im ersten Fall auch dann, wenn die Funktion false zurückgibt.
Ich denke, in diesem Szenario können Sie die Unterschiede zwischen dem Schlüsselwort return
und nicht erkennen.
AKTUALISIERTWenn Sie das Schlüsselwort return
verwenden, übergeben Sie zur Vereinfachung einen Wert an die Funktion, die onsubmit
aufgerufen hat. Ohne diese Funktion rufen Sie einfach die von Ihnen benannte Funktion im Event-Handler auf und geben nichts zurück.
durch Hinzufügen von return
zu einer Funktion () wird das Standardverhalten des Browsers deaktiviert, und es wird der Job von submit
deaktiviert. Dies bedeutet, dass Sie auf derselben Seite bleiben, wenn die Funktion false zurückgibt und Sie den Wert erneut in das Feld eingeben können.
Wenn Sie return
nicht mit der Funktion () verwenden, führt submit
die Funktion aus. Sie wird zur nächsten angegebenen Seite weitergeleitet, ohne sich um das zurückgegebene Ergebnis zu kümmern, ob es wahr oder falsch ist.