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

Eléphant du PHP | 360 Messages

20 juil. 2005, 10:38

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...

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

20 juil. 2005, 10:43

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...

Eléphant du PHP | 138 Messages

20 juil. 2005, 10:53

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;
Il y a des gens qui ont une bibliothèque comme des eunuques ont un harem (V. Hugo)

Eléphant du PHP | 360 Messages

20 juil. 2005, 11:23

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: )