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 :

Bouton on click


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut Bouton on click
    Comment appeler une autre fonction présente dans la page grâce au "onclick"???

    • j'ai crée une fonction ajout d'un champ input et a côte un bouton permettant d'inserer le nom de l'image.
      soucis : à l'endroit en gras, j'aimerais appeler l'autre fonction tout en bas, celle qui s'apelle function inserer_nom(num), comment dois-je faire?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    function ajout()
        {   var i=document.createElement("input");
            i.type="file";
            i.id="fichier";
            i.name="fichier[]";
            
    		
            var d=document.createElement("div"); 
            d.appendChild(i);
            document.getElementById( 'divFichiers' ).appendChild(d);
    	
            var b=document.createElement("input");
            b.type="button";
            b.value="inserer nom image";
    b.onClick="inserer_nom('+num+')";
           b.width="120";
          
           var c=document.createElement("input");	
           c.type="button"; 
           c.value="Supprimer"; //nom du bouton
           c.onclick=function()	{			this.parentNode.style.display="none"; 		this.parentNode.innerHTML="";	}
           c.width="81"; 
            d.appendChild(b);
            d.appendChild(c);
            num++;
        }
    function inserer_nom(num) {    
    var text = document.getElementById('fichier_'+num).value; 
    var fichier = text.substr(text.lastIndexOf('\\')+1);     document.getElementById('textarea').value+= '[img]'+fichier+'[/img]\n';
    }

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par cathy9999
    comment dois-je faire?
    presque comme tu as fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    b.onclick="inserer_nom('"+num+"')";
    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Ca ne marche pas! je t'explique mon soucis :
    J'ai crée un champ input file seul au départ, et l'utilisateur à l'aide d'un bouton "ajouter nouveau champ", peut en ajouter plusieurs pour uploader plusieurs fichiers. Jusqu'a là c'est tout bon.
    Comme j'ai une textarea, je propose à l'utilisateur d'insérer directement le nom de l'image grâce à un bouton 'inserer nom image' avant d'êrte uploader! ma fonction marche super bien pour le premier champ input file mais pas les autres, comment dois-je faire ??

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par cathy9999
    ma fonction marche super bien pour le premier champ input file mais pas les autres, comment dois-je faire ??
    Effectivement !
    Sûrement dû au fait que tu leur donne tous le même ID (or il doit absolument être unique).
    Essaye qqchose comme A+

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Non plus, marche pas!
    Pour mon premier champ, je l'ai traité ainsi
    <input type="file" name="fichier_1" id="fichier_1" />
    <input name="button" type="button" onClick="inserer_nom('1')" value="Inserer nom image"/>

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Le nouvel ID n'est-il pas en conflit avec un autre existant ?
    Citation Envoyé par cathy9999
    Non plus, marche pas!
    C'est à dire ?
    Erreur ou pas ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    non le seul id que j'ai pour les champs input c'est id="fichier_1"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    var num=0;
    function ajout()
        {   var i=document.createElement("input");
            i.type="file";
            i.id="fichier_"+num;
            i.name="fichier[]";
     
     
    	var d=document.createElement("div"); 
            d.appendChild(i);
            document.getElementById( 'divFichiers' ).appendChild(d);
     
    	var b=document.createElement("input");
            b.type="button";
            b.value="inserer nom image";
    		b.onclick="inserer_nom('"+num+"')";
    		b.width="120";
     
    		var c=document.createElement("input");	// ajout du bouton pour supprimer
    		c.type="button";
    		c.value="Supprimer"; //nom du bouton
    		c.onclick=function()	{			this.parentNode.style.display="none"; 		this.parentNode.innerHTML="";	}
    		c.width="81"; //Taille du bouton
            d.appendChild(b);
            d.appendChild(c);
            num++;
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function inserer_nom(num) 
    {    var text = document.getElementById("fichier_"+num).value; 
        var fichier = text.substr(text.lastIndexOf('\\')+1);     document.getElementById('textarea').value+= '[img]'+fichier+'[/img]\n';
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="file" name="fichier_1" id="fichier_1" /><input name="button" type="button" onClick="inserer_nom('1')" value="Inserer nom image" style="width:120px; "/>
    <div    id="divFichiers"><a href="javascript:void(ajout());" class="titreRubrique">Ajouter un champ</a></div></p>

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Il ne faut pas nommer ton paramètre "num" : c'est déjà une variable globale.

    De plus, tu a un id="fichier_1".
    Puis tu appelles inserer_nom('1')

    Ca va te faire un second id="fichier_1" il me semble.

    Donc tu en auras 2 ... et c'est pas bon

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    comment dois je faire alors?

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par cathy9999
    comment dois je faire alors?
    Ben ... commence par donner à celui qui "en dur" dans la page

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Et si je change et que je ne crée pas de champs de départ! je veux dire que direct j'appuie sur "ajout d'un champ" et que cela me crée un champ mais que dois-je changer là pour que ca marche l'insertion du nom ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    var num=0;
    function ajout()
        {   var i=document.createElement("input");
            i.type="file";
            i.id="fichier_"+num;
            i.name="fichier[]";
     
     
    	var d=document.createElement("div"); 
            d.appendChild(i);
            document.getElementById( 'divFichiers' ).appendChild(d);
     
    	var b=document.createElement("input");
            b.type="button";
            b.value="inserer nom image";
    		b.onClick=function () 
    {    var text = document.getElementById('fichier_'+num).value; 
        var fichier = text.substr(text.lastIndexOf('\\')+1); //LastIndexOf recuperes le dernier "\"
        document.getElementById('textarea').value+= '[img]'+fichier+'[/img]\n';
    }
    		b.width="120";
     
    		var c=document.createElement("input");	// ajout du bouton pour supprimer
    		c.type="button";
    		c.value="Supprimer"; //nom du bouton
    		c.onclick=function()	{	//lors du clique, appel de la fonction qui suit
    		this.parentNode.style.display="none"; //suppresion d'un champ input
    		this.parentNode.innerHTML="";	}
    		c.width="81"; //Taille du bouton
            d.appendChild(b);
            d.appendChild(c);
            num++;
        }

  12. #12
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par E.Bzz
    Ben ... commence par donner à celui qui "en dur" dans la page
    Essaye déjà ça.
    C'est plus simple à faire, et ça t'évitera des modif inutiles. Le pb est peut-être simplement qu'il y a d'autres erreurs dans ta page

    A+

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Non mais non vu que j'ai supprimé ce champ, une erreur doit venir de ma fonction ! toute la partie que j'ai mise est celle qui traite des champs, la synthaxe me plait comme elle est, c'est juste le bouton 'inserer nom' qui marche pas!

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    b.onClick=function () 
    {    var text = document.getElementByid("fichier_"+num).value; 
        var fichier = text.substr(text.lastIndexOf('\\')+1); //LastIndexOf recuperes le dernier "\"
        document.getElementById('textarea').value+= '[img]'+fichier+'[/img]\n';
    }
    Je dois le changer comme cela, sous la même forme que mon bouton supprimer mais je ne sais pas faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    c.onclick=function()	{	
    this.parentNode.style.display="none"; 
    this.parentNode.innerHTML="";	}
    On m'a indiqué de faire genre comme cela, mais je susi perdue, peux tu m'aider...??:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     b.onclick=function() { inserer_nom(this); }
     avec un modif dans la fonction inserer_nom.    ( car dans ce cas on ne peut pas utiliser num )
    var text = num.parentNode.getElementsByTagName("input")[0].value;
     this.parentNode.name="";

  15. #15
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par cathy9999
    ( car dans ce cas on ne peut pas utiliser num )
    Aucune raison : aux dernières nouvelles c'étaient une variable globale ...
    var text = num.parentNode.getElementsByTagName("input")[0].value;
    Là par contre, ça veut rien dire, num étant une variable texte ...

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Comme cela? si oui cela marche pas snif snif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function inserer_nom(num) 
    {   
    var text = num.parentNode.getElementsByTagName("input")[0].value;
    var fichier = text.substr(text.lastIndexOf('\\')+1); 
    document.getElementById('textarea').value+= '[img]'+fichier+'[/img]\n';
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    var num=0;
    function ajout()
        {   var i=document.createElement("input");
            i.type="file";
            i.id="fichier_"+num;
            i.name="fichier[]";
     
    var d=document.createElement("div"); 
    d.appendChild(i);
    document.getElementById( 'divFichiers' ).appendChild(d);
     
    var b=document.createElement("input");
    b.type="button";
    b.value="inserer nom image";
    b.onClick=function() { inserer_nom(this); }
    b.width="120";
     
    var c=document.createElement("input");
    c.type="button";
    c.value="Supprimer"; //nom du bouton
    c.onclick=function()	{	
    this.parentNode.style.display="none"; 
    this.parentNode.innerHTML="";	}
    c.width="81"; //Taille du bouton
            d.appendChild(b);
            d.appendChild(c);
            num++;
        }

  17. #17
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    A mon avis tu t'éloignes trop (et en rajoutant des erreur : cf. mes remarques sur "num").
    Tu devrais repartir de ta version de départ. Il me semble que c'est la plus proche de la solution

    A+

  18. #18
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Il me semble qu'en repartant de ton code initial, et en effectuant les
    2 corrections ci-dessous, tu devrais pas être loin
    Citation Envoyé par E.Bzz
    presque comme tu as fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    b.onclick="inserer_nom('"+num+"')";
    Citation Envoyé par E.Bzz
    Ben ... commence par donner à celui qui "en dur" dans la page


    A+

  19. #19
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    ... et ne passe plus "num" en paramètre : c'est une variable globale, et elle est directement accessible de toutes les fonctions de ta page ...

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Non a présent je souhaite garder cette synthaxe car l'aspect visuel pour l'utilisateur qui s'en servira sera beaucoup mieux et il y'a un beug quelque part mais je ne sais où

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    var num=0;
    function ajout()
        {   var i=document.createElement("input");
            i.type="file";
            i.id="fichier_"+num;
            i.name="fichier[]";
     
     
    	var d=document.createElement("div"); 
            d.appendChild(i);
            document.getElementById( 'divFichiers' ).appendChild(d);
     
    	var b=document.createElement("input");
            b.type="button";
            b.value="inserer nom image";
    		b.onClick=function() { inserer_nom(this); }
     
    		b.width="120";
     
    		var c=document.createElement("input");	// ajout du bouton pour supprimer
    		c.type="button";
    		c.value="Supprimer"; //nom du bouton
    		c.onclick=function()	{	//lors du clique, appel de la fonction qui suit
    		this.parentNode.style.display="none"; //suppresion d'un champ input
    		this.parentNode.getElementsByTagName("input")[0].name=""; 
    }
    		//this.parentNode.innerHTML="";	
    		c.width="81"; //Taille du bouton
            d.appendChild(b);
            d.appendChild(c);
            num++;
        }
     
    function inserer_nom(num) 
    {    //var text = document.getElementById('fichier_'+num).value; 
     var text = num.parentNode.getElementsByTagName("input")[0].value;
        var fichier = text.substr(text.lastIndexOf('\\')+1); //LastIndexOf recuperes le dernier "\"
        document.getElementById('textarea').value+= '[img]'+fichier+'[/img]\n';
    }

Discussions similaires

  1. Bloquer un bouton sur click
    Par doudou_rennes dans le forum ASP.NET
    Réponses: 5
    Dernier message: 20/01/2010, 12h31
  2. Evenement Bouton et Click
    Par denebj dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/07/2007, 21h19
  3. Réponses: 4
    Dernier message: 08/05/2007, 09h40
  4. Bouton evenement click ne fonctionne pas
    Par delphine_lep dans le forum IHM
    Réponses: 3
    Dernier message: 06/04/2007, 15h12
  5. [Débutant] Changer le texte d'un bouton au click
    Par Zolstead dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/01/2007, 14h31

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