Code js qui ne marche pas (DOM, ajout d'évènement)

Résolu
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 5 avril 2008 à 11:07
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 6 avril 2008 à 14:09
Salut tout le monde,

J'ai ces quelques lignes de code qui ne marchent pas !!!

document.getElementById('button1').addEventListener('click', reciproque('document.form1.texte1.value', 'document.form1.texte2.value', 'document.form1.texte3.value'), false);
document.getElementById('button2').addEventListener('click', hypotenuse('document.form2.texte1.value', 'document.form2.texte2.value'), false);
document.getElementById('button3').addEventListener('click', cote3('document.form3.texte1.value', 'document.form3.texte2.value'), false);

et je ne sais pas comment faire pour mettre ce que retourne mes fonction dans des balises

avec innerHTML ni ou mettre mes innerHTML !!!

merci d'avance !!!

Si t'a besoin d'aide, MP !!!

58 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
5 avril 2008 à 16:56
où ?

élément.addEventListener("click",
     function() { champ_où_afficher_le_résultat=hypotenuse(taille_cote_1, taille_cote_2);
                } , false);  

tu modifies ce qui est en italique et en gras
    élément                       la balise sur laquelle on applique
  champ_où_afficher_le_résultat          là où tu voudrais  ton résultat
    taille_cote_1                                       champ de saisie de la 1ère valeur
    taille_cote_2                                       champs de saisie de la 2ème valeur

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
5 avril 2008 à 17:21
je suis sous ie, donc c'est attachEvent qu'il faut utiliser !!

Si t'a besoin d'aide, MP !!!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
5 avril 2008 à 18:39
oui.      syntaxe un peu différente ( onclic, pas de false .. )
élément.attachEvent("onclick", function() {} );
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
5 avril 2008 à 18:42
justement ça marche pas !!!

Si t'a besoin d'aide, MP !!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
5 avril 2008 à 18:45
es-ce obligé d'utiliser un champs text ???

Si t'a besoin d'aide, MP !!!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 avril 2008 à 08:03
>>

justement ça marche pas !!!
    ça devrait.   tu ne fais pas tout à fait ce qu'il faut.
    met nous où tu en es.... uniquement ce qui concerne l'hypothenuse peut-être ?

>>

es-ce obligé d'utiliser un champs text ???
    non bien sûr.
    attention,  pour certains élément on utilise .value et
                    pour d'autres .innerHTML ( mais ça tu le sais )

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
6 avril 2008 à 08:52
oui, je suis en train de chercher ce qui ne va pas, et je pense que c'est un problème d'initialisation et que mes évènement sont chargé avant que le DOM sois chargé et on m'a ausi dit qu'internet explorer c'est de la grosse bouse !!!

Si t'a besoin d'aide, MP !!!
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
6 avril 2008 à 08:54
document.getElementById('button1').attachEvent('onclick', function() {document.getElementById('resultat1').value = reciproque("document.form1.texte1.value", "document.form1.texte2.value", "document.form1.texte3.value");};
document.getElementById('button2').attachEvent('onclick', function() {document.getElementById('resultat2').value = hypotenuse("document.form2.texte1.value", "document.form2.texte2.value")};
document.getElementById('button3').attachEvent('onclick', function() {document.getElementById('resultat3').value = cote3("document.form3.texte1.value", "document.form3.texte2.value")};

Peut être es ce un problème avec la methode getElementById, j'ai vu quelque pars qu'elle n'était pas totalement prise en charge !!!

Si t'a besoin d'aide, MP !!!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 avril 2008 à 09:49
comme déjà dit tu confond "toto" et toto
    toto est une variable, "toto" une chaîne de caractère
ensuite il te manque une )

    ce qui donne ( mais j'ai remplacé reciproque par une addition, et mis 2 variables seulement
          pour le test !  )

aller

<form name= "form1">
   
   
</form>
<script>
    function reciproque(z1,z2)
    {    return Number(z1)+Number(z2);    }
    document.getElementById('button1').attachEvent('onclick',
                function()
                {    document.getElementById('resultat1').value =
                    reciproque( document.form1.texte1.value , document.form1.texte2.value); } );
    document.getElementById('button1').attachEvent('onclick',
                function()
                {    document.getElementById('resultat1').value =
                    reciproque(document.form1.texte1.value, document.form1.texte2.value);};                   
                   
                   
</script>

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 avril 2008 à 09:53
mauvais copié/collé !!!

aller

<form name="form1">
   
   
</form>
<script>
    function reciproque(z1,z2)
    {    return Number(z1)+Number(z2);    }
    document.getElementById('button1').attachEvent('onclick',
                function()
                {    document.getElementById('resultat1').value =
                    reciproque(document.form1.texte1.value, document.form1.texte2.value); } );
</script>

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
6 avril 2008 à 10:35
merci je m'en vais testé ça tout de suite !!!

Si t'a besoin d'aide, MP !!!
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
6 avril 2008 à 10:50
quand je fais un copier collé de ton code, il marche mais quand je fais les modifications sur mon dossier pythagore.js ça marche pas, on dirais que quand un script est sur la même page que que le code html ça marche mais quand ça y est pas ça marche pas, je vais continuer a chercher !!!

Si t'a besoin d'aide, MP !!!
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
6 avril 2008 à 11:19
j'ai l'erreur suivante sous la console firefox !!!

Erreur : document.getElementById("button1") has no properties
Fichier source : [file:///C:/Users/nicolas/Desktop/Mes%20Cr%C3%A9ations/pythagore/pythagore.js file:///C:/Users/nicolas/Desktop/Mes%20Cr%C3%A9ations/pythagore/pythagore.js]
Ligne : 33

Si t'a besoin d'aide, MP !!!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 avril 2008 à 11:38
ah... tu as ajouté ce qu'il fallait pour FF ?
si cette ligne passe avec IE, peut-être button1 n'a pas d'ID mais
    uniquement un name... IE sait emplacer l'un par l'autre, FF ne le fait pas.

>>on dirait que quand un script est sur la même page que le code html ça marche
>>mais quand ça y est pas ça marche pas,
    tu parles de .js je suppose ?
    met au point sans. quand c'est ok ==> .js
    aucune raison d'ailleurs, un .js c'est un copié/collé là où on l'appelle, rien de plus

si tu n'avances pas, mets nous un extrait ( pour hypothenuse par exemple ! )
        mais avec tout ( html.script... ).... encore un ch'tit effort, tu n'es pas
       loin et tu vas y arriver.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 avril 2008 à 12:52
bravo !       nickel si ça baigne, c'est que tu as compris
       ( et ce n'était pas simple ! )

dernière (?) ch'tite remarque :

if(document.all) {
  document.getElementById('button1').attachEvent.....

il serait peut-être plus judicieux (?) de tester
    if (document.getElementById('button1').attachEvent) {...

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
6 avril 2008 à 13:13
oui si tu veus, je pensais que document.all était une particularité IE !!!

Si t'a besoin d'aide, MP !!!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 avril 2008 à 14:06
>>document.all était une particularité IE
    tu as ( presque complètement ) raison
    et justement !   suppose qu'avec le navigateur ChtiNav   il faille utiliser
          attachEvent et que sur celui -ci document.all n'existe pas...
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
6 avril 2008 à 14:09
ok, tu gagne la partie !!!

Si t'a besoin d'aide, MP !!!
0
Rejoignez-nous