JavaScript "onclick' event 'return' Schlüsselwort Funktionalität
Bin ich wirklich neu auf javascript, und stolperte über die return
Schlüsselwort. Im Grunde, was ist der Unterschied in Bezug auf diese 2 Aussagen?
<input type="checkbox" onclick="doAlert()" />
vs
<input type="checkbox" onclick="return doAlert();" />
Im wesentlichen, beide kehrten die gleichen Ergebnisse und die Funktion aufgerufen wurde, aber ist es mehr? Jede Hilfe sehr geschätzt :). Danke!
- Da Sie sagen, Sie sind mit javascript, ich empfehle, dass Sie lernen, wie man anfügen von Ereignishandlern, anstatt Sie definieren inline-wie Sie hier tun. Es gibt Debatte, aber es gibt gute Gründe warum sollten Sie nicht verwenden die inline-Handler.
- Gute Quellen für Anfänger: MDN JavaScript Guide und quirksmode.org - Einführung in event-Handlern.
- mögliche Duplikate von: stackoverflow.com/questions/128923/... (ohne Tags)
Du musst angemeldet sein, um einen Kommentar abzugeben.
False zurückgeben von der Funktion Abbrechen wird der Effekt überprüft. Da die nativen Funktionen geschrieben das das hardcoded in html-Eigenschaften (es wurde einige neue lokale Funktion), der html-Code geschrieben, ohne das Wort "zurück" wird nur die Funktion ausführen, und verliert seine Rückkehr Wert, als wenn Sie schon schrieb:
Funktion
some_local_function
nicht zurückkehren, jeder Wert, auch wenndoAlert
gibt.Wenn Sie schreiben, "return", es ist wie du geschrieben hast die zweite Funktion wie diese:
bewahrt, die die Rückkehr Wert von doAlert, was auch immer es sein wird. Wenn es stimmt - die Aktion durchführen wird (das Kontrollkästchen überprüft werden) - ansonsten - es wird abgebrochen.
Können Sie sehen, live-expamle hier: http://jsfiddle.net/RaBfM/1/
Einige html-Elemente haben JS Ereignisse, die sich anders Verhalten, wenn wahr/falsch zurückgegeben wird. Zum Beispiel:
...vs...
In der zweiten Instanz, wenn die
ValidateForm
Funktion false zurückgibt wird das Formular nicht Absenden, in der ersten, auch wenn die Funktion false zurückgibt, wird das Formular trotzdem Einreichen.Ich denke, dieses Szenario können Sie sehen, die verschiedenen zwischen der Verwendung der
return
Stichwort und nicht.AKTUALISIERT Zu vereinfachen, wenn Sie die
return
Schlüsselwort übergeben Sie einen Wert an die Funktion, dass heißt deronsubmit
. Ohne es sind Sie ganz einfach den Aufruf der Funktion, die Sie Namen in der event-handler und der Rückkehr nichts.ValidateForm
zurück0
odernull
oder23
statttrue
oderfalse
in der syntaxonSubmit='return ValidateForm();'
?if (returnValue === false) { /* do something here*/ }
. also, wenn Sie return 'false' -- ich denke, das Formular Einreichenhinzufügen
return
einer Funktion(), deaktiviert es das default-Verhalten der browser, deaktiviert es die Arbeit dersubmit
. Bedeutet, dass es halten wird Sie auf der gleichen Seite, wenn die Funktion false zurückgibt, und Sie können füllen Sie den Wert in das Feld wieder.Wenn Sie nicht
return
mit der Funktion (), dannsubmit
Funktion wird Ihren job, es wird umgeleitet auf die angegebene Seite, ohne sich über das Ergebnis, ob es richtig oder falsch war.return
vor dem Aufruf der Funktion bedeutet *nicht* deaktivieren Sie das standardmäßige Verhalten des Browsers — es hängt davon ab, was der Aufruf der Funktion kehrt zurück. Wenn die Funktion etwas zurückgibt, truthy das default-Verhalten wird durchgeführt, wenn die Funktion etwas zurückgibt, falsy, dann das default-Verhalten wird abgebrochen. Y. Shoham, akzeptiert die Antwort von 7 Jahren, bevor diese Antwort deckt, dass, während diese Antwort ist sachlich falsch.