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 :

Liste déroulante et IE


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 312
    Points : 184
    Points
    184
    Par défaut Liste déroulante et IE
    Bonjour j'ai ecris ce code pour gérer le nombre de jours valide suivant le mois selectionné, hors ce code marche parfaitement sous firefox et opera mais pas sous ie ou netscape. En effet, la liste reste désespérement vide et je ne comprends pas pourquoi ,quelqu'un aurai t il une idée ,merci d'avance.

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     
    <head>
     
    <script language="javascript">
     
    	function regdate(le_mois)
    	{
    		mois = new Array (31,31,28,31,30,31,30,31,31,30,31,30,31);
     
    		_mois = document.forms[0].mois.value;
    		_jour = document.forms[0].jour.value;
     
    		_nbjour = mois[_mois]; // Contient le nombre de jours suivant le mois sélectionné
     
    		new_liste = document.forms[0].jour;
    		new_liste.innerHTML = ""; // on efface le contenu de la liste déroulante
     
    		for (i=1;i<=_nbjour;i++)
    		{
    			new_liste[i] = new Option (i,i);
    		}
     
    	}
     
    </script>
     
     
    <title>Document sans nom</title>
    </head>
     
    <body onload="regdate(1)">
     
    <form id="form1" name="form1" method="post" action="">
      <label>
      jour
      <select name="jour">
     
      </select>
      </label>
      <label>mois
      <select name="mois" onchange="regdate(this.value);">
      <option> 1 </option>
      <option> 2 </option>
      <option> 3 </option>
      <option> 4 </option>
      <option> 5 </option>
      <option> 6 </option>
      <option> 7 </option>
      <option> 8 </option>
      <option> 9 </option>
      <option> 10 </option>
      <option> 11 </option>
      <option> 12 </option>
      </select>
      </label>
    </form>
     
    </body>
    </html>

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Yo !

    utilise plutôt document.getElementsByName('mois')[0] plutôt que la syntaxe document.forms[0].mois, et add et remove plutôt que plutôt que innerHTML...

    essaie cette fonction :
    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
    	function regdate(le_mois)
    	{
     
    		var mois = new Array(31,31,28,31,30,31,30,31,31,30,31,30,31);
     
    		var _nbjour = mois[le_mois]; // Contient le nombre de jours suivant le mois sélectionné
     
    		var new_jour = document.getElementsByName("jour")[0];
    		while(new_jour.options.length != 0) new_jour.remove(0);
     
    		for (var i=1;i<=_nbjour;i++)
    		{
    			if(navigator.appName == "Microsoft Internet Explorer") new_jour.add(new Option (i,i));
    			else new_jour.add(new Option (i,i), null);
    		}
     
    	}

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 312
    Points : 184
    Points
    184
    Par défaut
    Citation Envoyé par Swoög
    Yo !

    utilise plutôt document.getElementsByName('mois')[0] plutôt que la syntaxe document.forms[0].mois, et add et remove plutôt que plutôt que innerHTML...

    essaie cette fonction :
    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
        function regdate(le_mois)
        {
     
            var mois = new Array(31,31,28,31,30,31,30,31,31,30,31,30,31);
     
            var _nbjour = mois[le_mois]; // Contient le nombre de jours suivant le mois sélectionné
     
            var new_jour = document.getElementsByName("jour")[0];
            while(new_jour.options.length != 0) new_jour.remove(0);
     
            for (var i=1;i<=_nbjour;i++)
            {
                if(navigator.appName == "Microsoft Internet Explorer") new_jour.add(new Option (i,i));
                else new_jour.add(new Option (i,i), null);
            }
     
        }
    Ecoute c'est presque ça, au chargement de la page ça passe (avec regdate(1) ), mais à la mise à jour de la liste par l'event onchange la liste redevient vide, peut etre est ce du à la mauvaise gestion du parametre this.value.

    Merci quand même

  4. #4
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.options[this.selectedIndex].value

  5. #5
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    pourtant j'avais testé sous IE et Firefox et ça machait nickel !
    L'idée de FremyCompany est peut-être la bonne

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 312
    Points : 184
    Points
    184
    Par défaut
    Ok merci à tous en fait pour marcher il falit rajouter l'attribut value dans les tags option et maintenant ça marche, décidement ce IE ....

  7. #7
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Arf, c'est vrai, j'avais fait la modif en plus, mais j'avais oublié de le dire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. valeur d'une liste déroulante
    Par leeloo076 dans le forum ASP
    Réponses: 7
    Dernier message: 15/04/2004, 16h11
  2. liste déroulante
    Par leeloo076 dans le forum ASP
    Réponses: 12
    Dernier message: 23/03/2004, 10h35
  3. liste déroulante avec session
    Par leeloo076 dans le forum ASP
    Réponses: 3
    Dernier message: 19/03/2004, 11h01
  4. liste déroulante en ASP vbscript
    Par leeloo076 dans le forum ASP
    Réponses: 9
    Dernier message: 17/03/2004, 16h42
  5. Listes déroulantes liées entre elles
    Par denisC dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2002, 15h53

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