Aide a la création d'une fonction

Résolu
kyoku59
Messages postés
54
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
21 septembre 2018
- 6 déc. 2009 à 15:11
kyoku59
Messages postés
54
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
21 septembre 2018
- 7 déc. 2009 à 16:53
Bonjour.

Voila j'ai cette fonction :


function heures()

{

var tabHeure= new Array("01","02","03", "04", "05","06","07", "08", "09","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24");

var d=document.formHeure.listHeure;

d.options.length=0

for(var i=0; i < tabHeure.length ; i++)

   {  d.length++;

  d.options[d.length-1].text = tabHeure[i];

   }

}

 


Étant donnée que je dois répéter plusieurs fois ce code je voudrai mettre en paramétre dans cette fonction le name d'une <form> et le name d'un <select>

J'ai tenté de faire ceci :



function heures(form, list)

{

var tabHeure= new Array("01","02","03", "04", "05","06","07", "08", "09","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24");

var d=document.form.list;

d.options.length=0

for(var i=0; i < tabHeure.length ; i++)

   {  d.length++;

  d.options[d.length-1].text = tabHeure[i];

   }

}

 


J'appel cette fonction comme ceci :
<select name="listHeure" id="idHeureLundi1" onclick="heures('formHeure', 'listHeure');"> </select> 


mais j'ai ce message d'erreur :
Message : 'document.form.list' a la valeur Null ou n'est pas un objet.

Merci

15 réponses

Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
6 déc. 2009 à 18:11
quelques manières de faire
( il y en a d'autres ! )

<script>
function appel1(f,t)
{	alert(document.forms[f].elements[t].value); }
function appel2(t)
{	alert(t.value); }
function appel3()
{	 alert( document.frm.txt6.value );	}
</script>
<form name="frm">






</form>

3
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
6 déc. 2009 à 18:13
on se croise...
le plus simple je ne sais pas
mais this....

function appel(t)
{	alert(t.value); }
...

3
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
7 déc. 2009 à 08:39
on utilise plus généralement onchange
attention néanmoins : si le select n'a pas de size
ou si le size="1", c'est la 1ère option qui est
sélectionnée par défaut. donc il faudrait cliquer
sur une autre option avant de re-cliquer sur cette
1ère ligne pour déclencher le onchange. donc,
soit mettre un size="2" au moins, soit mettre
une 1ère ligne bidon ( un titre, et bien entendu
tester si selectedIndex est >0 ) ou au onfocus
mettre ce selectedIndex=-1, ou ...
3
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
6 déc. 2009 à 15:32
Bonjour,
et ?
_ le formulaire ( car formualire il y a ), a bien
un name="from" ? ( ce que j'éviterais car trop proche
de ce que connait le html/javascript, un jour ou l'autre
ça vous jouera des tours )
_ il existe bien un select ( à prirori ce de ça qu'il
s'agit ? ) dans ce formulaire qui a un name="list"

s'en préjuger du reste.

Cordialement [mon Site] [M'écrire] Bul
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
6 déc. 2009 à 15:34
oulah.... i fallait lire :
un name="form" ?
mais surtout sans préjuger du reste.
sans préjuger de mes autres fautes dans le reste
0
kyoku59
Messages postés
54
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
21 septembre 2018

6 déc. 2009 à 15:38
Je n'ai pas tout compris mais oui j'ai une form qui se nome "formHeure" et mon select est bien dans ma form
0
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
6 déc. 2009 à 16:05
euh... le name n'est pas ="form" ?
( c'était ma question :
le formulaire a bien un name="form" )
donc si vou utilisez 'document.form.list'
c'est une valeur Null ou pas un objet

avec
<form name="toto"....
<balise name="titi"....

on peut utiliser document.toto.titi
pas autre chose
0
kyoku59
Messages postés
54
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
21 septembre 2018

6 déc. 2009 à 16:29
J'ai bien des name="" sur chacune de mes balises

voici une partie de mon code

			<form name="formHeure" >
<select name="listHeure" id="idHeureLundi1" onclick="heures('formHeure', 'listHeure');">
</select>
</form>
0
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
6 déc. 2009 à 17:34
je ne vois comment exprimer ça autrement :

vous utilisez document.form.list ( puisque
c'est l'erreur qui est affichée )
donc vous devez avoir
<form name="form"....
<select name="list"....
si vous mettez
<form name="formHeure" >
<select name="listHeure"
vous devez utiliser document.formHeure.listHeure

on pourrait utiliser getElementById, getElmentsNyName,
getElementsByTagName ou autres.... mais c'est une
autre histoire
0
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
13
6 déc. 2009 à 17:58
oups... pas vu les paramètres de la fonction !!!!
pistes :
_ sucrez les et utiliser document.formHeure.listHeure
_ ne mettez qu'1 paramètre
function heures(xxx)
et utilisez xxx directement dans la fonction
( au lieu de faire d=document.form.list )
dans l'appel = onclick="heures(this);">
_ si vous voulez à tous prix garder cette syntaxe
ce doit être un truc du genre
document.forms[form].elements[list] ou "pas loin"
si vous y tenez je retrouverais la syntaxe exacte
0
kyoku59
Messages postés
54
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
21 septembre 2018

6 déc. 2009 à 18:10
Je voudrai allé au plus simple. Sachant que je dois appeler cette fonction un grand nomre de fois.
Pour mettre dans le contexte, je veux dynamiser un planning de ce siteen l'occurrence.
0
kyoku59
Messages postés
54
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
21 septembre 2018

6 déc. 2009 à 18:22
Merci de ton aide je vais essayé tout ça
0
kyoku59
Messages postés
54
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
21 septembre 2018

6 déc. 2009 à 19:26
Génial ca fonctionne avec appel1(f, t) mais now j'ai un autre souci

j'ai mit l'événement Onclick sur mon select mais quand je click dessus la lite déroulante s'ouvre et se referme aussitôt.

Comment puis-je faire ?

Dur dur mes début dans le JavaScript
0
kyoku59
Messages postés
54
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
21 septembre 2018

6 déc. 2009 à 19:38
Seulement sous IE et sous d'autre navigateur je ne peux pas sélectionner la valeur de mon choix. Il me garde que le premier
0
kyoku59
Messages postés
54
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
21 septembre 2018

7 déc. 2009 à 16:53
Merci
0