Page 1 sur 1

Une fonction js qui empeche une autre de fonctionner ...

Posté : 20 juil. 2005, 10:38
par Snoops
J'ai cette fonction :

Code : Tout sélectionner

function cocher() { if (window.document.forms['my_form'].elements['jde'].checked == true) { window.document.forms['my_form'].elements['jde_1'].checked = true; window.document.forms['my_form'].elements['jde_2'].checked = true; window.document.forms['my_form'].elements['jde_3'].checked = true; window.document.forms['my_form'].elements['jde_4'].checked = true; window.document.forms['my_form'].elements['jde_5'].checked = true; } if (window.document.forms['my_form'].elements['ow'].checked == true) { window.document.forms['my_form'].elements['ow_1'].checked = true; window.document.forms['my_form'].elements['ow_2'].checked = true; } if (window.document.forms['my_form'].elements['bo'].checked == true) { window.document.forms['my_form'].elements['bo_1'].checked = true; window.document.forms['my_form'].elements['bo_2'].checked = true; window.document.forms['my_form'].elements['bo_3'].checked = true; window.document.forms['my_form'].elements['bo_4'].checked = true; window.document.forms['my_form'].elements['bo_5'].checked = true; window.document.forms['my_form'].elements['bo_6'].checked = true; } }
qui fonctionne très bien toute seule mais dès que j'ajoute celle-ci :

Code : Tout sélectionner

function enlever() { if ((window.document.forms['my_form'].elements['jde_1'].checked==false) || (window.document.forms['my_form'].elements['jde_2'].checked==false) || (window.document.forms['my_form'].elements['jde_3'].checked == false) || (window.document.forms['my_form'].elements['jde_4'].checked == false) || (window.document.forms['my_form'].elements['jde_5'].checked == false)) { window.document.forms['my_form'].elements['jde'].checked = false) } }

elle ne fonctionne plus !

Est-ce normal?
Je ne connais quaziment rien en JS j'essaie d'apprendre en observant donc j'ai surement fait une erreur quelque part...

Posté : 20 juil. 2005, 10:43
par mere-teresa
Je te recommande d'utiliser un navigateur Mozilla-like qui comporte dans le menu "Outils" une Console Javascript qui te donne tes erreurs...(je l'ai dit et donné des copies d'écran sur ce sujet)

PArce que sans le HTML sur lequel il agit, il est difficile de tester un Javascript. Et en le lisant voir une erreur, n'est pas facile non plus...

Posté : 20 juil. 2005, 10:53
par Axel
salut
  function enlever()
   {
      if ((window.document.forms['my_form'].elements['jde_1'].checked==false) || (window.document.forms['my_form'].elements['jde_2'].checked==false) || (window.document.forms['my_form'].elements['jde_3'].checked == false) || (window.document.forms['my_form'].elements['jde_4'].checked == false) || (window.document.forms['my_form'].elements['jde_5'].checked == false))
      {
         window.document.forms['my_form'].elements['jde'].checked = false) // <---------- pq cette paranthèse ???? elle ne sert à rien, mets un ";" à la limte.
      }
   } 
Une petite remarque sur ton écriture de :

Code : Tout sélectionner

window.document.forms['my_form'].elements['jde_1'].checked
qui est totalement juste puisque ça marche.
Le window devant est inutile; en fait on précise la fenetre avec un document lorsque l'on va chercher des données sur une autre fenetre que celle d'origine.

mais celle-ci fonctionne aussi et est un peu moins longue et t'évite d'appeler le formulaire à chaque fois. Mais bien sur il faut que chacun de tes objets ait un id différent.
Et tu as aussi la même possibilté mais avec les names avec getElementsByName()

Code : Tout sélectionner

document.getElementById('jde_2').checked = true;

Posté : 20 juil. 2005, 11:23
par Snoops
salut
  function enlever()
   {
      if ((window.document.forms['my_form'].elements['jde_1'].checked==false) || (window.document.forms['my_form'].elements['jde_2'].checked==false) || (window.document.forms['my_form'].elements['jde_3'].checked == false) || (window.document.forms['my_form'].elements['jde_4'].checked == false) || (window.document.forms['my_form'].elements['jde_5'].checked == false))
      {
         window.document.forms['my_form'].elements['jde'].checked = false) // <---------- pq cette paranthèse ???? elle ne sert à rien, mets un ";" à la limte.
      }
   } 
Une petite remarque sur ton écriture de :

Code : Tout sélectionner

window.document.forms['my_form'].elements['jde_1'].checked
qui est totalement juste puisque ça marche.
Le window devant est inutile; en fait on précise la fenetre avec un document lorsque l'on va chercher des données sur une autre fenetre que celle d'origine.

mais celle-ci fonctionne aussi et est un peu moins longue et t'évite d'appeler le formulaire à chaque fois. Mais bien sur il faut que chacun de tes objets ait un id différent.
Et tu as aussi la même possibilté mais avec les names avec getElementsByName()

Code : Tout sélectionner

document.getElementById('jde_2').checked = true;

Moi et mes copier coller ... :oops: je pensais avoir une erreur mais tout de meme pas aussi grossiere que cette ) !!!
Je suis désolé du dérangement, cela fonctionne tres bien a présent !
Et merci une fois de plus a Axel pour m'avoir enseigné une astuce pour javascript !

A bientot pour de nouvelles erreurs de ma part ... :P (nan promis j'essayrais de faire plus attention la prochaine fois ! :oops: )