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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 312
    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 confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    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);
    		}
     
    	}
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 312
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.options[this.selectedIndex].value

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    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
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 312
    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 ....

+ 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