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 ![[:moule_bite] [:moule_bite]](https://forum-images.hardware.fr/images/perso/moule_bite.gif) 
 
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.