IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Onclick avec l'objet Input Button ne fonctionne pas correctement


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 44
    Points : 34
    Points
    34
    Par défaut Onclick avec l'objet Input Button ne fonctionne pas correctement
    Bonjour
    Dans une form 'form', je veux créer un objet "input" de type 'button' à qui je veux associer la fonction 'MaFonction()' à l'attribut 'onclick'.
    Le script est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var form1 = document.createElement("form");
    var input = document.createElement("button");
    input.innerHTML =items[j].childNodes[i].firstChild.data;
    input.setAttribute('onclick',fiche_PL(Param))
     
    function fiche_PL(Param){
    ......................
    }
    Il se trouve que
    1) le script entre dans la fonction fiche_PL() dès la création de l'objet input
    2) Il n'entre pas dans la fonction fiche_PL() lorsque je clique sur le bouton

    Le problème est le même si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    input.onclick =fiche_PL(Param)
    Comment définir correctement 'onclick'?

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    lorsque l'on écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var result = une_fonction();
    il y a exécution de la fonction une_fonction dû à la présence des parenthèses.

    Donc quand tu écris input.onclick =fiche_PL(Param), tu affectes le résultat de la fonction à la variable onclick de l'input ce qui n'est pas ce que tu souhaites faire !

    Il te faut, dans ce cas, affecter l'adresse/référence de la fonction et ne pas mettre de parenthèses.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    input.onclick =fiche_PL;
    Quant à input.setAttribute('onclick',fiche_PL(Param)), cette écriture est déconseillé, onclick n'étant pas réellement un attribut, dans ce cas il te faudrait écrire cela sous la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oInput.setAttribute( "onclick", "alert(this.nodeName)");
    Préfère lui l'autre écriture ou encore en passant par une fonction anonyme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    oInput = function(){
      // corps de la fonction
    };

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/01/2016, 14h30
  2. onclick d'un button ne fonctionne pas
    Par s.rais dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/12/2012, 13h46
  3. Réponses: 4
    Dernier message: 13/10/2007, 15h18
  4. Réponses: 4
    Dernier message: 30/03/2007, 10h37
  5. [XHTML] probleme avec <height="100%">, la huateur ne fonctionne pas
    Par pierrot10 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 07/08/2006, 20h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo