Problème incrément select/option value et JS

Résolu/Fermé
cecimil - 31 mai 2012 à 11:55
 cecimil - 31 mai 2012 à 14:12
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

the_animal Messages postés 69 Date d'inscription vendredi 27 avril 2012 Statut Membre Dernière intervention 27 juillet 2013 18
31 mai 2012 à 13:50
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 !!! 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
0