404 votes

Ce qui ' s l’effet de l’ajout de ' retournent false ' à un événement onclick ?

Plusieurs fois j’ai vu des liens comme ceux-ci dans des pages HTML :

Quel est l’effet de la retourner false là-dedans ?

Aussi, je ne vois habituellement que dans les boutons.

Edit : C’est spécifié nulle part ? Dans certains spec dans w3.org ?

347voto

Jim Points 39574

La valeur de retour d'un gestionnaire d'événement détermine si oui ou non le navigateur par défaut du comportement doit prendre place. Dans le cas de clic sur les liens, ce serait en suivant le lien, mais la différence est la plus notable dans le formulaire de soumission des gestionnaires, où vous pouvez annuler la soumission d'un formulaire si l'utilisateur a fait une erreur en saisissant les informations.

Je ne crois pas qu'il y est une spécification du W3C pour cela. Toutes les anciennes JavaScript interfaces, comme cela a été donné le surnom de "DOM 0", et sont pour la plupart non spécifié. Vous pouvez avoir de la chance la lecture de vieux Netscape 2 de la documentation.

La façon moderne de la réalisation de cet effet est d'appeler event.preventDefault(), et cela est spécifié dans les DOM 2 spécification d'Événements.

182voto

HoboBen Points 1361

Vous pouvez voir la différence avec l’exemple suivant :

En cliquant sur « OK » retourne la valeur true, et le lien est suivi. En cliquant sur « Annuler » retourne la valeur false et ne suit pas le lien. Si javascript est désactivé le lien est suivi normalement.

29voto

Herb Caudill Points 16170

Voici une routine plus robuste pour annuler le comportement par défaut et événement bouillonnant dans tous les navigateurs :

Un exemple de comment cela servirait dans un gestionnaire d’événements :

17voto

Neall Points 12075

Faux ostensible d’un événement JavaScript habituellement annule le comportement « par défaut » - dans le cas de liens, il indique au navigateur de ne pas suivre le lien.

13voto

Guvante Points 10338

Selon moi, qu'il déclenche l’événement standard ne pas arriver.

Dans votre exemple le navigateur ne tentera pas d’aller à #.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X