Réponses:
Souvent, dans les gestionnaires d'événements, tels que onsubmit
, renvoyer false est un moyen d'indiquer à l'événement de ne pas se déclencher réellement. Donc, disons, dans le onsubmit
cas, cela signifierait que le formulaire n'est pas soumis.
event.preventDefault()
cette fonctionnalité. Je pense que renvoyer false est obsolète et ne fonctionne plus toujours.
return false
méthode est dans la méthode, cela change quelque chose?
Je suppose que vous faites référence au fait que vous devez souvent mettre un «retour faux»; déclaration dans vos gestionnaires d'événements, ie
<a href="#" onclick="doSomeFunction(); return false;">...
Le 'return false;' dans ce cas, empêche le navigateur de sauter à l'emplacement actuel, comme indiqué par href = "#" - à la place, seule doSomeFunction () est exécutée. C'est utile lorsque vous souhaitez ajouter des événements aux balises d'ancrage, mais que vous ne voulez pas que le navigateur saute de haut en bas à chaque ancre à chaque clic
Il est utilisé pour arrêter la propagation de l'événement . Vous voyez quand vous avez deux éléments avec un gestionnaire d'événements click (par exemple)
-----------------------------------
| element1 |
| ------------------------- |
| |element2 | |
| ------------------------- |
| |
-----------------------------------
Si vous cliquez sur l'élément intérieur (élément2), cela déclenchera un événement de clic dans les deux éléments: 1 et 2. Il s'appelle "Evénement bouillonnant". Si vous souhaitez gérer l'événement dans element2 uniquement, le gestionnaire d'événements doit retourner false pour arrêter la propagation de l'événement.
Un autre exemple sera le gestionnaire de lien onclick. Si vous souhaitez arrêter le fonctionnement d'un formulaire de lien. Vous pouvez ajouter un gestionnaire onclick et renvoyer false. Pour empêcher l'événement de se propager vers le gestionnaire par défaut.
false
d'un gestionnaire d'événements empêchera l'action par défaut associée à un événement; vous pouvez également le faire via un appel event.preventDefault()
ou un réglage event.returnValue = false
(IE); pour empêcher l'événement de bouillonner, vous devrez appeler event.stopPropagation()
ou régler event.cancelBubble = true
(IE)
Euh ... que diriez-vous dans une fonction booléenne pour indiquer «pas vrai»?
Je suis également venu sur cette page après avoir recherché "js, quand utiliser 'return false;' Parmi les autres résultats de recherche, il y avait une page que j'ai trouvée beaucoup plus utile et simple, sur le site CSS-Tricks de Chris Coyier: La différence entre 'return false;' et 'e.preventDefault ();'
L'essentiel de son article est:
function () {return false; }
// EST ÉGAL À
function (e) {e.preventDefault (); e.stopPropagation (); }
bien que je recommande quand même de lire l'article entier.
Mise à jour: après avoir discuté du bien-fondé de l'utilisation de return false; en remplacement de e.preventDefault (); & e.stopPropagation (); l'un de mes collègues a souligné que return false arrête également l'exécution du rappel, comme indiqué dans cet article: jQuery Events: Stop (Mis) Using Return False .
function() { return false; }
EST ÉGAL À function(e) { e.preventDefault(); e.stopPropagation(); }
, mais en js pur, ce n'est pas pareil, function() { return false; }
EST ÉGAL À en function(e) { e.preventDefault(); }
fait. Cela n'arrête pas la propagation.
Je pense qu'une meilleure question est, pourquoi dans un cas où vous évaluez un ensemble booléen de valeurs de retour, n'utiliseriez-vous PAS vrai / faux ? Je veux dire, vous pourriez probablement avoir true / null, true / -1, d'autres misc. Les valeurs Javascript «fausses» à remplacer, mais pourquoi feriez-vous cela?
Lorsque vous souhaitez déclencher du code javascript à partir d'une balise d'ancrage, le gestionnaire onclick doit être utilisé plutôt que le pseudo-protocole javascript:. Le code javascript qui s'exécute dans le gestionnaire onclick doit renvoyer true ou false (ou une expression qui évalue à true ou false) à la balise elle-même - si elle renvoie true, alors le HREF de l'ancre sera suivi comme un lien normal. S'il renvoie false, alors le HREF sera ignoré. C'est pourquoi «return false»; est souvent inclus à la fin du code dans un gestionnaire onclick.
Lorsqu'une instruction return est appelée dans une fonction, l'exécution de cette fonction est arrêtée. Si spécifié, une valeur donnée est renvoyée à l'appelant de la fonction. Si l'expression est omise, undefined est renvoyé à la place.
Pour en savoir plus, consultez la page de documentation MDN pourreturn
.
retourne false en utilisant uniquement si vous avez une fonction usée (par un test) ou si vous voulez arrêter une fonction, par exemple utilisez return false à la fin "onsubmit"
Aussi, ce lien court et intéressant à lire https://www.w3schools.com/jsref/event_preventdefault.asp
Définition et utilisation
La méthode preventDefault () annule l'événement s'il est annulable, ce qui signifie que l'action par défaut qui appartient à l'événement ne se produira pas.
Par exemple, cela peut être utile lorsque:
Clicking on a "Submit" button, prevent it from submitting a form
Clicking on a link, prevent the link from following the URL
Remarque: tous les événements ne sont pas annulables. Utilisez la propriété annulable pour savoir si un événement est annulable.
Remarque: La méthode preventDefault () n'empêche pas la propagation ultérieure d'un événement à travers le DOM. Utilisez la méthode stopPropagation () pour gérer cela.