Problème avec la propriété display [Résolu]

Signaler
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
-
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
-
Bonjours,
J'ai une fonction javascript pour afficher un morceau d'un formulaire à partir d'une liste déroulante.
J'air repris un code existant et je ne comprends pas pourquoi celui-là ne fonctionne pas alors que l'autre fonctionne sans problème??

Voici le code de la fonction javascript :

function datadisplay3()
{
 if(document.saisieincident.donnee4.value == "AS400")
 { document.getElementById('formulaireMachine').style.display = 'block';
 }
 else
 {
  document.getElementById('formulaireMachine').style.display = 'none';
 }
}

Et voici le code de la liste déroulante et du formulaire :

<select name='donnee4' size='1' onchange='javascript:datadisplay3();'>
<option value = 'AS400'>AS400</option>
<option value = 'SAP HR'>SAP HR</option>
</select>

         <!--Ici mon formulaire-->

Voilà et quelle que soit la valeur sélectionnée dans la liste déroulante, mon formulaire reste affiché...

J'espère avoir été assez clair sur mon problème ...

 

17 réponses

Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012

Bonne nouvelle j'ai trouver le problème ^^

Comme j'ai repris un code existant je n'avais pas fait attention à ça mais en fait le problème était que le premier menue déroulant était dans le même tableau que la partie que je devais cacher!

C'est pour ça qu'il ne pouvait pas la cacher.

Je les ai séparer en deux tableaux et maintenant ça fonctionne ! ! ! 

C'est bien ce que je pensais, pas de problème dans ma fonction javascript ^^

Merci à tous d'avoir voulu m'aider !
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Bonjour,

J'aurai fais
function datadisplay3(valeur)
{
 if(valeur.value = = "AS400")
 { document.getElementById('formulaireMachine').style.display = 'block';
 }
 else
 {
  document.getElementById('formulaireMachine').style.display = 'none';
 }
}

Et voici le code de la liste déroulante et du formulaire :

<select name='donnee4' size='1' onchange='javascript:datadisplay3 (this );'>
<option value = 'AS400'>AS400</option>
<option value = 'SAP HR'>SAP HR</option>
</select>

Ça me semble plus clair autrement je vois pas pourquoi ça fonctionnerai pas.
<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012

Je n'ai pas de problème au niveau de mon if  : j'ai fait des tests avec des
alert("Test");
Et mon if fonctionne sans problème : lorsque je change la valeur sélectionnée dans ma liste déroulante, il va au bon endroit de mon if.
Mais la propriété display = 'none'; ne fonctionne jamais 

Une autre idée?
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Ben en faite je vois pas pourquoi ça fonctionnerai pas...
La console javascript de firefox dit quelque chose ou pas?

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Essaye peut etre
  document.getElementById('formulaireMachine').style.display = '';
<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012

Je n'ai pas de problème avec javascript puisqu'il s'execute bien sur les autres pages et qu'une autre fonction similaire s'execute (avec menu déroulant et affichage de formulaire ) également sans problème.
Je suis sous IE6 dans une entrprise ( c'est pour un site intranet )

Je ne comprends pas pourquoi ça ne fonctionne pas
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012

J'ai essayer avec ton conseil : pas plus de résultat ....
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
>>Je n'ai pas de problème avec javascript puisqu'il s'execute bien sur les autres pages

Ben si tu as un problème avec javascript puisque ton formulaire ne se cache jamais.
Je ne connais pas le nom de l'extention de IE qui permet de débugger le javascript...
Sinon je ne comprend pas non plus...

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

le name du formulaire doit être incorrect...

remplace comme suit :

function datadisplay3(sel)
{
 if(sel.value == "AS400")
 { document.getElementById('formulaireMachine')
....
<select name='donnee4' size='1' onchange='datadisplay3(this);'>

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
et remarque : le select a un size=1
dans ce cas la 1ère option est sélectionnée par défaut,
il faudra cliquer sur une autre option pour que le onchange
fonctionne en cliquant sur cette 1ère option
c'est pour ça que, souvent, on voit une 1ère option bidon
ou alors mettre size=2 ou au onfocus, mettre le selectedIndex = -1, ou ....
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
>>remplace comme suit :
C'est ce que je lui aid dis de faire mais non "son javascript est parfait puisqu'il fonctionne ailleurs" je ne fais que citer et cette phrase ne m'implique ni moi ni mes pensées

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>son javascript est parfait puisqu'il fonctionne ailleurs
c'est possible ! si là, le name du formulaire est ok  !?!
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
1782
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
14 janvier 2021
117
 sur cette ligne [ if(document.saisieincident.donnee4.value == "AS400") ] je ne comprendre ce que fait[saisieincident] ici tu devrait le retirer pour voir ce que sa donne.
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Je l'avais pas vu celle la comme quoi son javascript ne fonctionne pas aussi bien qu'il le prétendait (et que ça devait sûrement pas rentrer dans la boucle quand il faisait des alert() )
Heureusement que tu as des bons yeux kazma

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour à tou(te)s,
le fait d'écrire document.saisieincident.donnee4
implique que ton SELECT soit dans une FORM au doux nom de saisieincident, ce qui n'est pas
le cas dans ce que tu livres comme code.
L'exemple ci dessous marche
parfaitement...
<html>

<head>
<script type="text/javascript">
function
datadisplay3(){
 if(document.saisieincident.donnee4.value == "AS400"){

   document.getElementById('formulaireMachine').style.display = 'block';

 }
 else{

  document.getElementById('formulaireMachine').style.display = 'none';

 }
}
</script>
</head>

<form
name="saisieincident">
  <select name='donnee4' size='1'
onchange='javascript:datadisplay3();'>
    <option value =
'AS400'>AS400</option>
    <option value = 'SAP HR'>SAP
HR</option>
  </select>
</form>
Ici mon formulaire


</html>
;O)
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012

Bonne nouvelle j'ai trouver le problème ^^

Comme j'ai repris un code existant je n'avais pas fait attention à ça mais en fait le problème était que le premier menue déroulant était dans le même tableau que la partie que je devais cacher!

C'est pour ça qu'il ne pouvait pas la cacher.

Je les ai séparer en deux tableaux et maintenant ça fonctionne ! ! ! 

C'est bien ce que je pensais, pas de problème dans ma fonction javascript ^^

Merci à tous d'avoir voulu m'aider !
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012

Bon alors pour te répondre maelob, j'avais raison de dire que ma fonction fonctionnait

J'avais fait des test avec alert et ils fonctionnaient!
De plus, Petole Team avait raison, le tout est dans un formulaire : saisieincident voilà pourquoi le document.saisieincident.donnee4

Je ne pouvais pas mettre tout le code puisque déjà tout est en asp et qu'il est plutôt long !

Je suis dans une entreprise en stage et le code existait déjà avant mon arrivée.

Bonne journée à tous !