web-dev-qa-db-fra.com

JavaScript 'onclick' événement 'retour' fonctionnalité des mots clés

Je suis vraiment nouveau sur javascript et je suis tombé sur le mot clé return. Fondamentalement, quelle est la différence entre ces deux déclarations?

<input type="checkbox" onclick="doAlert()" />

contre 

<input type="checkbox" onclick="return doAlert();" />

Essentiellement, les deux ont renvoyé les mêmes résultats et appelé la fonction, mais y a-t-il autre chose? Toute aide grandement appréciée :). Merci!

43
Shiroi98

Renvoyer false à partir de la fonction annulera l'effet de la vérification. Parce que le natif des fonctions qui écrivent en dur dans les propriétés HTML (c'est devenu une nouvelle fonction locale), écrire du HTML sans le mot "return" n'exécutera que la fonction et perdra sa valeur de retour, comme si vous aviez écrit:

function doAlert() {
   if(some_condition)
     return false;
   else
     return true;
}
function some_local_function() {
   doAlert();
}

La fonction some_local_function ne renverra aucune valeur, bien que doAlert revienne.

Quand vous écrivez "return", c'est comme si vous écriviez la deuxième fonction comme ceci:

function some_local_function() {
   return doAlert();
}

qui préserve la valeur de retour de doAlert, quelle qu’elle soit. Si c'est vrai, l'action sera exécutée (la case à cocher sera cochée); sinon, elle sera annulée.

Vous pouvez voir en direct expamle ici: http://jsfiddle.net/RaBfM/1/

37
Y. Shoham

Certains éléments HTML ont des événements JS qui se comportent différemment lorsque true/false est renvoyé. Par exemple: 

<input type='submit' value='Click Me' onSubmit='ValidateForm();'>

...contre...

<input type='submit' value='Click Me' onSubmit='return ValidateForm();'>

Dans le second cas, si la fonction ValidateForm a renvoyé la valeur false, le formulaire ne sera pas soumis. Dans le premier cas, même si la fonction renvoie false, le formulaire sera toujours soumis. 

Je pense que ce scénario, vous pouvez voir la différence entre l'utilisation du mot clé return et non.

UPDATEDPour simplifier, si vous utilisez le mot clé return, vous transmettez une valeur à la fonction qui a appelé onsubmit. Sans cela, vous appelez simplement la fonction que vous nommez dans le gestionnaire d'événements sans rien renvoyer.

38
Glenn Ferrie

en ajoutant return à une fonction (), cela désactive le comportement par défaut du navigateur, il désactive le travail de submit. Cela signifie que vous resterez sur la même page si la fonction retourne false et que vous pouvez remplir à nouveau la valeur dans le champ. 

Si vous n'utilisez pas return avec la fonction (), la fonction submit remplira son rôle, elle sera redirigée vers la page spécifiée suivante, sans se soucier du résultat renvoyé, qu'il soit vrai ou faux.

0
Arun Raaj