désactiver un menu/liste

Le
Tantale
Ma page http://www.jmrw.com/Chess/Ugo_Dossi/base.htm

comporte deux menus déroulants.

Je voudrais que quand on clique sur l'un l'autre appraraisse comme désactié.

Est-ce possible et comment ?

Merci

jmrw
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pascal PONCET
Le #18404591
Tantale a écrit :
Ma page http://www.jmrw.com/Chess/Ugo_Dossi/base.htm
comporte deux menus déroulants.
Je voudrais que quand on clique sur l'un l'autre appraraisse comme désactié.



Bonjour,

C'est possible en jouant sur la propriété booléenne "disabled" de
l'élément "select", mais j'avoue que je ne vois pas trop l'intérêt sur
les plans fonctionnels et ergonomiques.
En plus, ça risque de ne pas être facile de gérer la bascule entre les
deux listes, surtout si on ne choisi rien de nouveau dans celle qui est
active (l'évènement "onchange" de sera pas lancé).


Cordialement,
Pascal


PS: j'ai jeté un oeil sur le script du cadre de gauche; Il y a un sacré
mélange de "document.all" et de "document.getElementById" ! Tout ça
risque de fonctionner bizarrement selon le navigateur puisque son type
n'est pas testé, non ?
Tantale
Le #18405201
"Pascal PONCET" news: 4970ca3b$0$28673$
Tantale a écrit :
Ma page http://www.jmrw.com/Chess/Ugo_Dossi/base.htm
comporte deux menus déroulants.
Je voudrais que quand on clique sur l'un l'autre appraraisse comme
désactié.



Bonjour,

C'est possible en jouant sur la propriété booléenne "disabled" de
l'élément "select", mais j'avoue que je ne vois pas trop l'intérêt sur
les plans fonctionnels et ergonomiques.
En plus, ça risque de ne pas être facile de gérer la bascule entre les
deux listes, surtout si on ne choisi rien de nouveau dans celle qui est
active (l'évènement "onchange" de sera pas lancé).


Cordialement,
Pascal


PS: j'ai jeté un oeil sur le script du cadre de gauche; Il y a un sacré
mélange de "document.all" et de "document.getElementById" ! Tout ça
risque de fonctionner bizarrement selon le navigateur puisque son type
n'est pas testé, non ?




Merci

Quand je lui mets un

document.getElementById("select").disabled=true; cela ne semble avoir aucun
effet.

jmrw
SAM
Le #18406701
Le 1/16/09 8:56 PM, Tantale a écrit :
"Pascal PONCET" news: 4970ca3b$0$28673$

PS: j'ai jeté un oeil sur le script du cadre de gauche; Il y a un sacré
mélange de "document.all" et de "document.getElementById" ! Tout ça
risque de fonctionner bizarrement selon le navigateur puisque son type
n'est pas testé, non ?



Merci

Quand je lui mets un

document.getElementById("select").disabled=true; cela ne semble avoir aucun
effet.



c'est bien normal puisque ta balise 'select' n'a pas d'id !

getElementById
^^^^
c'est pourtant clairement exprimé, non ? "id" pas "name"

Ha? IE s'en débrouille ?
mais, mon pôvre, IE se débrouillerait aussi de

document.select.disabled = true;
document.all['select'].disabled = true;
document.all('select').disabled = true;

tellement il est bête ou approximatif dans sa syntaxe.
(il ne fait que baragouiner au lieu de parler correctement)

à propos d'id et de name :
document.getElementsByName()
existe aussi mais est très peu supporté par les navigateurs
(il faut les ttes dernières versions) et renvoie une collection.
Si tu es certain de n'avoir qu'un élément avec ce nom (name) tu peux
employer :
if(document.getElementsByName)
document.getElementsByName('select')[0].disabled = true;
ou, en plous muy complicado :
var d = document.getElementsByName?
document.getElementsByName('select')[0] :
document.getElementById&&document.getElementById("select")?
document.getElementById("select") :
document.all?
document.all['select'] :
document['select'];
d.disabled = true;

Sinon, et puisque tu t'adresses à un form,
le vieux JavaScript n'est pas mort
et si ce select avait été dans le form de la page :
document.forms[0].elements['select'].disabled = true;
aurait contenté tt le monde (même NC.4) et sans id.

Donc rajoute l'id
(qui peut être le même que le name mais qu'on ne doit trouver qu'une
fois ET *une seule* dans le fichier)

<p align="center">
<select name="select" id="select"
onChange="LoadNextPage(this.selectedIndex,0);Resset=1;">

Et puis les prochaines fois, pour tes names et ids, évite d'employer des
mots déjà pris qui peuvent pousser le navigateur à confusion.


Ha! et aussi, au lieu d'avoir :
if (Fin ==1) {document.getElementById("bd").disabled=true}
else {document.getElementById("bd").disabledúlse};
on peut faire plus court et simple :
document.getElementById("bd").disabled = (Fin == 1);


Ce serait bien d'avoir une fonction générique pour récupérer l'élément
voulu, et d'utiliser cette fonction de traduction partout où on a besoin
d'un truc :

function getElmt( truc ) {
return (typeof truc != 'string')? truc :
document.getElementById&&document.getElementById(truc)?
document.getElementById(truc) :
document.getElementsByName&&document.getElementsByName(truc)?
document.getElementsByName(truc)[0] :
document.layers&&document.layers[truc]? document.layers[truc] :
document.all&&document.all[truc]? document.all[truc] :
document[truc];
}

ce qui nous donne ensuite :
getElmt('select').disabled = true;
getElmt('bd').disabled = (Fin==1);
getElmt(document.forms[0][0]).value = 'rembobinage arrière';
getElmt('panel0').elements[5]).value = 'avance rapide';
etc...
et peu importe si l'machin a un id ou un name
(enfin ... avec un peu de chance !)

--
sm
Tantale
Le #18407701
Merci beaucoup.

Mes deux pages http://www.jmrw.com/Chess/Loyd/base.htm et
http://www.jmrw.com/Chess/Ugo_Dossi/base.htm

fonctionnent maintenant comme je le désire.

Vous êtes mon mécanicien préféré.

jmrw
Pascal PONCET
Le #18409341
Tantale a écrit :
Mes deux pages http://www.jmrw.com/Chess/Loyd/base.htm et
http://www.jmrw.com/Chess/Ugo_Dossi/base.htm
fonctionnent maintenant comme je le désire.



N'empêche, je comprends toujours pas l'ergonomie du truc ???
Dommage, parce que je pousse assez bien le pion, alors ça m'intéresse un
peu ce que vous avez fait.

Pascal
Tantale
Le #18410831
> N'empêche, je comprends toujours pas l'ergonomie du truc ???



Si, il ne faut pas que deux parties soient sélectionnées (une dans chaque
menu) quand on déroule une partie sinon il y a confusion.

jmrw
Publicité
Poster une réponse
Anonyme