Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

désactiver un menu/liste

6 réponses
Avatar
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

6 réponses

Avatar
Pascal PONCET
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 ?
Avatar
Tantale
"Pascal PONCET" a écrit dans le message de
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
Avatar
SAM
Le 1/16/09 8:56 PM, Tantale a écrit :
"Pascal PONCET" a écrit dans le message de
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
Avatar
Tantale
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
Avatar
Pascal PONCET
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
Avatar
Tantale
> 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