select.selectedIndex, select.options[i].value - HTML/CSS - Programmation
Marsh Posté le 24-05-2005 à 22:59:32
Déjà les truc genre document.monForm.monSelect1 sont complètement obsolète depuis belle lurette
Marsh Posté le 25-05-2005 à 11:41:04
Alors je dois faire comment pour mettre une condition sur un select?
je sais pas mais là tu ne m'aides pas vraiment...
Marsh Posté le 25-05-2005 à 17:26:53
Tu donne un id a ton select, puis tu y accedes via "getElementById".
Marsh Posté le 26-05-2005 à 12:56:29
Comme ça?
if(document.GetElementById("monSelect1" ).options[selectedIndex]=="Oui" )
Marsh Posté le 02-09-2008 à 10:13:40
j'ai le même problème
je viens de tester les 4 possibilités présentées dans cette page :
- document.monForm.monSelect1.options[i].value
- document.monForm.monSelect1.option.value
- document.monForm.monSelect1.selectedIndex
- document.GetElementById("monSelect1" ).options[selectedIndex]
et la seule qui fonctionne est :
document.monForm.monSelect1.options[i].value
mais je ne parviens pas à comprendre pourquoi
et d'où sort ce "i"
Marsh Posté le 02-09-2008 à 10:36:07
bonjour,
if(document.monForm.monSelect1.options[i].value=="oui" )
si monForm est le name d'un formulaire
qui contient une balise select dont le name="monSelect1" !
ça fonctionne avec tous les navigateurs
( et si en général on dit d'utiliser getElementById, c'est
pour simplifier la réponse )
mais il y a plein de questions !
1° i : c'est quoi ?
si c'est la ligne sélectionnée, c'est
document.monForm.monSelect1.selectedIndex qu'il faut utiliser
sinon, i contient quoi ?
2° les option sont bien du style <option value="oui">toto</option>
le value et le text, c'est pas la même chose
2° ce test est déclenché comment ?
le seul truc qui fonctionne avec tous les navigateurs c'est
onchange sur la balise select ( et pas onclick sur les options ! )
3° si le select n'a pas de size, ou si ce size=1,
la 1ère ligne est sélectionnée par défaut, avec onchange
il faudra donc cliquer sur une autre option avant que ce
ne soit effectif sur cette 1ère ligne
bref... ça doit marcher, quand
on aura le html adhéquat, on pourra dire....
Cordialement.
Marsh Posté le 02-09-2008 à 14:01:37
aux dernieres nouvelles les récents navigateurs dont IE5.5 et IE5.0 (si je ne me trompe pas)) permettent ceci ;
Code :
|
Code :
|
Marsh Posté le 02-09-2008 à 14:08:58
avec getElementById ou pas, c'est un raccourci permis
le_select.value
=
le_select.options[le_select.selectedIndex].value
quelle que soit la manière d'adresser le_select :
document.getElementById("toto" ) ou
document.name_formulaire.name_select
@+
Marsh Posté le 02-09-2008 à 21:52:17
bul3 a écrit : |
le dom de niveau 1 ca fait longtemps qu'on en fait plus
d'où le fait que je force les gens à passer par un id
Marsh Posté le 03-09-2008 à 08:16:36
1° getElementById ou pas, ça ne changera rien ici
2° quand c'est un formulaire, avec liaison avec le serveur,
un name est obligatoire. je ne vois pas pourquoi
rajouter un id totalement inutile.
si quand FF signale une erreur en disant "utiliser getElementById",
c'est pour faire simple, pas pour imposer ! sinon il devrait dire :
mettre le champ dans un formulaire, avec un name et faire
document.formulaire.champ... c'est plus compliqué à expliquer.
@+
Marsh Posté le 03-09-2008 à 08:26:33
bul3 a écrit : |
le problème c'est que si tu changes les name des champs pour une raison quelconque au niveau serveur, tu dois te retaper de modifier le JS
Mais bon j'y suis pour rien si des gens écrivent des normes et que personne ne les respectent.
Au passage on associe toujours un champs input avec un texte dans un label, cela est surtout très utile quand tu as des checkbox, il suffit de cliquer sur le texte pour cocher la checkbox.
Code :
|
Mais sinon le name sur un formulaire est deprecated depuis bien longtemps
Marsh Posté le 03-09-2008 à 08:43:24
>>le problème c'est que si tu changes les name des champs pour une raison
>> quelconque au niveau serveur, tu dois te retaper de modifier le JS
ah bon... et pas les ID ?
>>si des gens écrivent des normes
ce ne sont pas des normes !!!!
des recommandations, des conseils... avec 20 ans de retard sur l'existant,
pour ne parler uniquement de ça ! dont les navigateurs ne respectent
que ce qui les arrangent !
pas pour rien que de trés trés grands ne passent plus par l'organisme
dont tu dois parler.
ton exemple n'a rien à voir !
effectivement label peut se lier à un id.
et alors ?
je récapépète : pour la question ici,
ID ou NAME, là n'est pas le problème
donc si on peut cesser la polémique stérile...
@+
Marsh Posté le 24-05-2005 à 22:57:43
Comment l'utilise-t-on dans une condition?
if(document.monForm.monSelect1.options[i].value=="oui" )
{
ou bien
if(document.monForm.monSelect1.option.value=="oui" )
ou bien
if(document.monForm.monSelect1.selectedIndex=="oui" )
en sachant que j'ai deux options "oui" ou "non"
et que mon champ s'appelle monSelect1.