Problème incrément select/option value et JS [Résolu/Fermé]

Signaler
-
 cecimil -
Bonjour,

Voici mon problème, il va paraitre simpliste mais je suis bloquée (et un peu débutante)...
J'ai créé en html une liste déroulante (mon utilisateur doit saisir une heure):

<SELECT name="SelectHeure"id ="SelectHeure" size="1" onClick="SelectionnerH('heure');"></select>



D'autre part, pour éviter d'avoir à écrire chaque valeur dans la liste d'option, je souhaitais faire ceci :
function SelectionnerH(heure)
	{

	var monSelect = document.getElementById('SelectHeure');
	monSelect.options.length = 0;	
	var h=heure ;
	for (h=1;h<13;h++) {
					monSelect.options[monSelect.length] = new Option(h);
					monSelect.selectedIndex = h ;
					}
	}



Du coup, ca fonctionne "couçi couça" (quand je pense que c'est sensé être binaire, ces bêtes là !)....
Deux problèmes essentiels :
Mon select "ne selectionne pas" ce qui est quand même un comble ! la liste de 1 à 12 s'affiche mais quand on clique dessus, n'est pas conservée dans la "selectbox". Je parle pas de récupération de données (pas encore!) mais simplement d'affichage...

Et quand on clique sur une heure dans la liste, la liste "clignote", je suppose que c'est mon onclick qui fait ça mais je ne sais pas comment le contourner !

1 réponse

Messages postés
69
Date d'inscription
vendredi 27 avril 2012
Statut
Membre
Dernière intervention
27 juillet 2013
16
Bonjour,

tu dois appliquer seulement le chargement des 12 options durant le chargement ou après que le noeud select est formé, pas durant le click sur le select car à chaque fois que tu y clique la fonction crée de nouveau les options.

-soit tu appelles la fonction quand toutes dom sont chargés
-soit tu appelles la fonction juste après que le select est formé

PS: h initialisé par 'heure' ?

<SELECT name="SelectHeure" id="SelectHeure" size="1"  ></select>
<script>
SelectionnerH();
</script>


et
function SelectionnerH()
	{
	var monSelect = document.getElementById('SelectHeure');
	monSelect.options.length = 0;	
	var h=0 ;
	for (h=1;h<13;h++) {
					monSelect.options[monSelect.length] = new Option(h);
					monSelect.selectedIndex = h ;
					}
	}
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Merci !!! c'est cool, j'ai pensé à sortir ma fonction des balises select, mais cela ne fonctionnait pas (une erreur de copier-coller peut être ^ ^). Pour le h=heure, au départ je pensait n'écrire qu'une fonction pour les heures et minutes mais là, je crois que j'ai l'esprit embrumé !
:D