wake-up-neo.net

JavaScript 'onclick' event 'return' Keyword-Funktionalität

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!

43
Shiroi98

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/

37
Y. Shoham

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.

38
Glenn Ferrie

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.

0
Arun Raaj