Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/06/2011, 19h50   #1
Invité régulier
 
Inscription : février 2003
Messages : 19
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 19
Points : 6
Points : 6
Par défaut Pourquoi le "return true;" dans un onclick ?

Pourquoi mettons-on parfois un "return true;" dans un événement comme onclick par exemple ? Comme ici extrait d'un formulaire HTML :

Code :
<input disabled="disabled" value="tester l'exemple" onclick="testExemple1();this.disabled=true;return true;" type="button">
Est-ce toujours nécessaire ? Sinon, quand est-ce nécessaire ?

D'avance merci pour votre réponse.
Bobabar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 19h59   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
En réalité, le return true est rarement utile. C'est surtout le return false qui est utilisé dans une situation très précise : empêcher le comportement par défaut de l'événement.
Tu rencontreras le plus souvent cette syntaxe sur des liens :
Code html :
<a href="http://developpez.com" onclick="maFonction();return false;">Cliquer</a>
Ici, lorsque l'on clique, maFonction() est exécuté puis le return false permet ne pas suivre le lien, qui pourra donc servir de solution alternative au cas où JavaScript est inaccessible par JavaScript (désactivé, ce qui est rare ou non pris en charge).
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 21h05   #3
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 421
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 421
Points : 2 809
Points : 2 809
de façon générale sur les gestionnaire d'événements (onclick onchange etc...)
si le gestionnaire retourne true l'événement est propagé sinon il est bloqué.

ce qui permet de controler l'action associé
sur un aHref le click active le lien un activera le lient après la gestion de l'événement et un false n'activera pas le lien. sur un formulaire le true poste le formulaire et le false empêche le formulaire d'être envoyé.

enfin sur le code je préfère utiliser la fonction pour contrôler les événement que d'ajouter un retrun true ou false dans la balise.
il ne faut pas oublier que le code d'un gestionnaire d'événement et transformé en fonction par le navigateur.

j'écris donc
Code :
1
2
3
4
function maFunction(){
   //traitement ...
   return resulta
}
et
Code :
<a href="..." onClick="retrun maFunction()">link</a>
ou encore
Code :
1
2
3
4
document.getElementById('myLink').onclick = function(){
   //traitement ...
   return resulta
}
et
Code :
<a href="..." id="myLink">link</a>
ainsi c'est la fonction qui contrôle l'action associé à l'événement.

Attention pas de return = return true
return null, return undefined, et return false sont équivalent (je crois que return 0 aussi)
et toute autre valeur est un return true.


A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 08h48   #4
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
et soit dit en passant, Bobabar, une fonction javascript retourne toujours true par défaut;
donc, les 3 écritures suivantes sont équivalentes:

Code :
1
2
3
4
5
6
function pas_in(dispensable){
  for(um in dispensable){
    developpez++
  };
  return true
}
Code :
1
2
3
4
5
6
function pas_in(dispensable){
  for(um in dispensable){
    developpez++
  };
  return
}
Code :
1
2
3
4
5
function pas_in(dispensable){
  for(um in dispensable){
    developpez++
  };
}
__________________
On ne mord pas, on manifeste seulement notre tristesse face à des exposés de situations qui défient notre entendement binaire.
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 08h54   #5
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Euh... non JT, une fonction retourne undefined par défaut :
Code :
1
2
3
4
function retour1(){}
function retour2(){return;}
function retour3(){return true;}
alert(retour1() + ' - ' + retour2() + ' - ' + retour3());
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 09h03   #6
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
mouais, j'avoue, pas très bien expliqué (pédagogiquement...);
mais dans la pratique, si false n'est pas explicitement déclaré, l'événement suit son cours;

mais tu as grandement raison pour true / undefined;

bref, javascript ignore les réponses de normand
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h33.


 
 
 
 
Partenaires

Hébergement Web