Académique Documents
Professionnel Documents
Culture Documents
Pour Débutant
J AVA S C R I P T (Programmation Internet) V O L . X X I V
I. L’ÉLÉMENT SELECT :
L’élément « select » est très important et est le substratum quand on doit choisir dans une
Liste Déroulante (Drop Down List) = liste de choix. C’est un élément richissime qui pos-
sède beaucoup de fonctionnalités et offre une quasi infinité de possibilités dont nous al-
lons parcourir ici quelques-unes.
Quand on ne maîtrise pas cet élément (SELECT) il paraît vraiment comme rébarbatif mais
comme on le verra ci-après, c’est un élément pourtant très facile et très intéressant à utili-
ser, rendant la programmation en JavaScript plus agréable que jouer au puzzle ou au
scrabble.
De plus sans lui on ne peut ni avoir les listes déroulantes de choix, ni pouvoir les utiliser
sans passer par des procédures réservées aux génies.
L’élément « select » doit avoir un attribut ou propriété name (nom) et/ou une ID, et un
EventListener qui est souvent et de façon plus pratique « onchange ».
« onKeyUp » n’agit que quand la touche est « RETURN » ou une des touches de con-
trôle et même la touche « ESCAPE » = « ÉCHAP » est appuyée puis relâchée après sé-
lection et ce autant de fois qu’on les frappe. Cet aspect est très important car une même
action peut « rafaler » sans contrôle.
La propriété « value » est la valeur renvoyée avec le formulaire « form » quand celle-ci
est envoyée (« submitted »).
La propriété « text » est le texte qui apparaît dans le « drop down box ».
console.dir("s.value =",sv);
// s.value = AMR
console.dir("s.selectedIndex =",si);
// s.selectedIndex = 2
console.dir("s.selectedOptions =",so);
// s.selectedOptions =
// HTMLCollection(3)
// 0: <option value="AMR" selected="true">
// 1: <option value="SCS" selected="selected">
// 2: <option value="PST" selected="">
// length: 3
// <prototype>: HTMLCollectionPrototype {
// item: item(), namedItem: namedItem(), length: Getter,
// … }
</script>
Exécution :
La boucle « for of » ne liste que les éléments attendus (ceux qui nous concernent directement).
<br>
<a href="javascript:void(0)" id="order">Lister Sélections</a>
<div id="dispMsg"></div>
goBut.addEventListener("click", function() {
let selOpts = s.selectedOptions;
let dispMsg = "";
// Conjonctions
if (i === (selOpts.length - 2) && (selOpts.length < 3)) {
dispMsg += " & ";
} else if (i < (selOpts.length - 2)) {
dispMsg += ", ";
} else if (i === (selOpts.length - 2)) {
dispMsg += ", et ";
}
}
// Fin Conjonctions
if (!dispMsg) {
dispMsg = "Aucune maladie trouvée!";
}
dispMsgBox.innerHTML = dispMsg;
}, false);
</script>
Exécution :
Quand aucune option n’est sélectionnée, aucune d’entre elles ne sera automatiquement
sélectionnée.
1. Si l’attribut « multiple » est spécifié => toutes les options sélectionnées seront sélec-
tionnées ;
Notez dans le code source ci-dessus que l’ « option » avec la « value » (et son « la-
bel ou texte » identique « EBALE ») sont repris deux fois, la première fois non sélec-
tionnée, la deuxième fois sélectionnée. Cela a été respecté dans l’affichage avec Yan-
dex & QupZilla ci-dessous à gauche avec sélection en gris, et Firefox avec sélection en
bleu.
2. Si l’attribut « multiple » n’est pas spécifié => c’est la dernière option rencontrée dans
la liste à sélection multiple qui est automatiquement sélectionnée [avec les trois navi-
gateurs].
3. Bien entendu, si « multiple » est spécifié alors qu’aucun élément n’est sélectionné, il
n’aura aucun effet.
L’accès à un élément HTML/DOM peut se faire de plusieurs manières, soit avec un « do-
cument . getElementById ( ) » ou un peu plus délicatement (en respectant le point de-
vant le om de classe) avec un « document . querySelector ( ) », soit très péniblement
avec un « document . getElementsByName ( ) ».
<form>
<select id="iSel" class="cSel" size=5 multiple>
<option value="eb">EBALE</option>
<option value="sn">SANI</option>
<option value="ep" selected>EPASOLA</option>
<option value="nz">NZETE</option>
<option value="eb" selected>EBALE</option>
</select>
</form>
<a href="javascript:void(f())">SUBMIT</a>
const s = document.getElementById('iSel');
// Notez l'absence de point devant le nom d'id « iSel »
console.log(s.value) ;
const c = document.querySelector('.cSel');
// Notez le point devant le nom de classe « cSel ».
console.log(s.value) ;
const ss = s.selectedOptions ;
const cs = c.selectedOptions ;
console.log(ss);
console.log(cs);
Avec Firefox :
Issu de document.getElementById('iSel');
Issu de document.querySelector('.cSel');
Issu de document.getElementById('iSel');
Issu de document.querySelector('.cSel');
Listage de TOUTES les options (les sélectionnées et non), via la méthode « getEle-
mentsByName », en indiquant celles qui sont sélectionnées :
<br><button onclick="f()">SUBMIT</button>
const s = document.getElementsByName('nSel');
// Notez l'absence de point devant le nom d'id « iSel »
let t="";
for(let i of s[0]) {
t=`${ i.value } <=> ${ i.innerHTML }`;
if(i.selected)t+=" Selected.";
console.log(t);
}
}
</script>
Les quatre versions/codes ci-après font exactement la même chose, ce sont des façons
différentes d’accéder à un élément DOM.
<form name="fname">
<select name="sname" onchange="fgo()">
<option style="background:#979196;color:#CDDCB6">
Choix
</option>
<option>Volume</option>
<option>Auteur</option>
<option>Année</option>
<option>Prix</option>
</select>
</form>
<form name="fname">
<select name="sname" onchange="fgo(fname)">
<option style="background:#979196;color:#CDDCB6">
Choix
</option>
<option>Volume</option>
<option>Auteur</option>
<option>Année</option>
<option>Prix</option>
</select>
</form>
<form name="fname">
<select name="sname" onchange="fgo(fname)">
<option style="background:#979196;color:#CDDCB6">
Choix
</option>
<option>Volume</option>
<option>Auteur</option>
<option>Année</option>
<option>Prix</option>
</select>
</form>
<form name="fname">
<select name="sname" onchange="fgo(this)">
<option style="background:#979196;color:#CDDCB6">
Choix
</option>
<option>Volume</option>
<option>Auteur</option>
<option>Année</option>
<option>Prix</option>
L’élément < Select > - 11 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
</select>
</form>
Exécution:
D’autres possibilités :
<form name="fName">
<textarea name="iName"
style="width:330;height:80">
</textarea>
<br>OnChange<br>
<select size=3 name="sName" style="width:100">
<option value="Glaucome spl">Gl</option>
<option value="Neurapraxis">Np</option>
<option value="Xérophtalmie">Xo</option>
<option value="Gérontoxon" selected=true>Ge</option>
<option value="Commotion Oc">Blunt</option>
</select>
L’élément < Select > - 12 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
</form>
<script type="text/javascript">
const f_act = _ =>{
var d = fName.iName;
d.value += "Selected Option value: "+s.value+" | ";
}
var s = fName.sName;
s.addEventListener("change", f_act);
</script>
<form name="fName">
<textarea name="iName"
style="width:700;height:215">
</textarea>
<br>OnChange<br>
<select size=3 name="sName" class="sClass" style="width:100">
<option value="88">Huit-Huit</option>
<option value="Mn">Mélanome</option>
<option value="Nv">Naevus</option>
<option value="Lc">Leucodermie</option>
<option value="Vi">Vitiligo</option>
</select>
</form>
<script type="text/javascript">
let s = document.getElementsByName("sName");
s[0].options+"\n";
d.value +=
"document.getElementsByName('sName')[0].options.selectedIndex: "+
s[0].options.selectedIndex+"\n\n";
Dans la Division :
Dans la console :
<div class="dClass"></div>
<div class="dClass" style="height:30">
2è dClass ignoré par le QUERYSELECTOR
</div>
OnChange<br>
<select size=3 style="width:100">
<option value="Glaucome">Gl</option>
<option value="Neurapraxis">Np</option>
<option value="Xérophtalmie">Xo</option>
<option value="Gérontoxon" selected=true>Ge</option>
<option value="Commotion">Blunt</option>
</select>
<script type="text/javascript">
const f_act = _ =>{
var d = document.querySelector('.dClass');
// Seulement la première class cClass rencontrée.
// Remarquez aussi le point (.) dans .dClass.
console.log(
d.value = "Value de l'option sélectionnée : "+
L’élément < Select > - 15 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
s.value);
var s = document.querySelector('select');
// Seulement le premier élément SELECT rencontré.
s.addEventListener("change", f_act);
</script>
<- Au lancé.
Dans le document :
Dans la console:
<select id="sid">
<option value="1">Xérophtalmie</option>
<option value="2">Cataracte</option>
<option value="3" selected="selected">Glaucome</option>
<option value="4">Blunt Trauma</option>
<option value="5" selected="selected">Neurapraxis</option>
<option value="6" selected="selected">Hemispherectomie</option>
</select>
let o = s.selectedOptions;
console.log(
"document.getElementById('sid').selectedOptions[0].value =",
document.getElementById('sid').selectedOptions[0].value);
//
// document.getElementById('sid').selectedOptions[0].value = 6
Exécution :
Avec Firefox :
Avec Yandex :
<form name="nForm">
<select class="clist" name="nlist" id="ilist" onmouseover="f()">
<option value="88">Classe1</option>
<option value="72">Classe2</option>
<option value="53" selected=selected>Classe3</option>
<option value="97">Classe4</option>
<option value="39">Classe5</option>
</select>
</form>
console.log(
`document.nForm.nlist =`,
document.nForm.nlist+`\n\n`);
console.log(
`document.nForm.nlist.value =`,
document.nForm.nlist.value+`\n\n`);
console.log(
`document.nForm.nlist.textContent =`,
document.nForm.nlist.textContent+`\n\n`);
console.log(
`document.nForm.nlist.options =`,
document.nForm.nlist.options+`\n\n`);
L’élément < Select > - 19 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
console.log(
`document.nForm.nlist.options.selectedIndex =`,
document.nForm.nlist.options.selectedIndex+`\n\n`);
console.log(
`document.nForm.nlist.options
[document.nForm.nlist.options.selectedIndex] =` ,
document.nForm.nlist.options
[document.nForm.nlist.options.selectedIndex]+`\n\n`);
console.log(
`document.nForm.nlist.options
[document.nForm.nlist.options.selectedIndex].value =`,
document.nForm.nlist.options
[document.nForm.nlist.options.selectedIndex].value+`\n\n`);
console.log(
`document.nForm.nlist.options
[document.nForm.nlist.options.selectedIndex].text =`,
document.nForm.nlist.options
[document.nForm.nlist.options.selectedIndex].text+`\n\n`);
console.log(
`document.nForm.nlist.options
[document.nForm.nlist.options.selectedIndex].textContent =`,
document.nForm.nlist.options
[document.nForm.nlist.options.selectedIndex].textContent+`\n\n`);
console.log(`=`.repeat(30)+`\nAvec CLASS\n`+`=`.repeat(30))
console.log(
`document.querySelector('.clist').innerHTML =`,
document.querySelector('.clist').innerHTML+`\n\n`);
console.log(
`document.querySelector('.clist').selectedIndex.value =`,
document.querySelector('.clist').selectedIndex.value+`\n\n`);
console.log(
`document.querySelector('.clist')
[document.querySelector('.clist').selectedIndex] =`,
document.querySelector('.clist')
[document.querySelector('.clist').selectedIndex]+`\n\n`);
console.log(
`document.querySelector('.clist')
[document.querySelector('.clist').selectedIndex].value =`,
document.querySelector('.clist')
[document.querySelector('.clist').selectedIndex].value+`\n\n`);
console.log(
`document.querySelector('.clist')
L’élément < Select > - 20 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
[document.querySelector('.clist').selectedIndex].text =`,
document.querySelector('.clist')
[document.querySelector('.clist').selectedIndex].text);
console.log(`=`.repeat(30))
ScreenShots de l’exécution :
document.getElementById("list").value="NIMPORTEQUOI";
sélectionne donc l’option qui a la value « NIMPORTEQUOI ». Si aucune option n’a la va-
lue == NIMPORTEQUOI, toutes les options seront désélectionnées.
document.getElementById("list").value=97;
<form name="nForm">
<select name="list" id="list" onmouseover="f()">
<option value="30">Classe0</option>
<option value="88">Classe1</option>
<option value="72">Classe2</option>
<option value="53">Classe3</option>
<option value="97">Classe4</option>
<option value="39">Classe5</option>
<option value="13">Classe6</option>
<option value="55">Classe7</option>
<option value="98">Classe8</option>
<option value="26">Classe9</option>
</select>
</form>
Avec donc
document.getElementById("list").value=97;
Exécution :
->
Avec
document.getElementById("list").value=970;
Exécution :
->
II. Quand vous avez un élément select par exemple de nom « name=nsel », les ins-
tructions suivantes :
document.getElementsByName("nsel").value="NIMPORTEQUOI";
peuvent soit ajouter une propriété « value » à cet élément, mais n’affectent pas la chaîne
« NIMPORTEQUOI » de value à l’option sélectionnée, soit ne rien faire du tout.
document.getElementsByName("list").value=97;
<form name="nForm">
<select name="list" id="list" onmouseover="f()">
<option value="30">Classe0</option>
<option value="88">Classe1</option>
<option value="72">Classe2</option>
<option value="53">Classe3</option>
<option value="97">Classe4</option>
<option value="39">Classe5</option>
<option value="13">Classe6</option>
<option value="55">Classe7</option>
<option value="98">Classe8</option>
<option value="26">Classe9</option>
</select>
</form>
Avec
document.getElementsByName("list").value=97;
->
Avec
document.getElementsByName("list").value=970;
idem.
Avant toute chose, signalons qu’on peut étiqueter (labeliser) les options d’une sélection :
<form name="fName">
<select size=3 id="isel" name="nsel" onContextMenu="fsel(isel)">
<label for="iNY"></label>
<option value="GLC">Glaucome</option>
<option value="PRB" selected>Presbytie</option>
<option value="NYS" id="iNY">Nystagmus</option>
</select>
</form>
console.log("i.options[iNY] =",i.options[iNY]);
// i.options[iNY] = undefined
console.log("i.options.label =",i.options.label);
// i.options.label = undefined
console.log("i.options.item =",i.options.item);
console.log("i.options.item(0) =",i.options.item(0));
}
</script>
Exécution :
->
15:17:11,088 Dans fsel(nsel) test.html:13:2
<form name="fName">
<se-
lect size=3 id="isel" name="nsel" onWheel="fWheel()" onContextMenu="fsel(isel)"
>
<label for="iNY"></label>
<option value="GLC" id="iGL">Glaucome</option>
console.log("i.options[iNY] =",i.options[iNY]);
// i.options[iNY] = undefined
console.log("i.options.label =",i.options.label);
// i.options.label = undefined
console.log("i.options.item =",i.options.item);
console.log("i.options.item(0) =",i.options.item(0));
}
document.getElementById("iGL").id = "nID";
// Changement de la valeur de 'id' en 'nID',
Exécution :
Avec Yandex :
->
->
Puis placez le curseur de la souris au-dessus du menu déroulant, et tournez très douce-
ment le « Wheel » de la souris.
Fermez ce message et notez la nouvelle option sélectionnée, mais aussi qu’elle a changé
de value et de label, et lisez la suite des messages de la console.
22:58:13.954 test.html:14
i.options = HTMLOptionsCollection(3) [
option#iGL, option, option#iNY,
iGL: option#iGL, iNY: option#iNY,
selectedIndex: 1
]
1. 0: option#nID
2. 1: option
3. 2: option#iNY
4. length: 3
5. selectedIndex: 0
6. iNY: option#iNY
7. nID: option#nID
8. __proto__: HTMLOptionsCollection
22:58:13.960 test.html:17
L’élément < Select > - 29 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
i.options.iNY =
<option value="NYS" id="iNY">Nystagmus</option>
Avec Firefox :
-> ->
->
->
HTMLOptionsCollection
0: <option id="nID" value="nVAL">
1: <option value="PRB" selected="">
2: <option id="iNY" value="NYS">
iNY: <option id="iNY" value="NYS">
length: 3
nID: <option id="nID" value="nVAL">
selectedIndex: 0
<prototype>: HTMLOptionsCollectionPrototype {
add: add(), remove: remove(),
length: Getter & Setter, …
}
Voyons maintenant la structure d’un objet select avec différents moyens d’acquisition de
l’élément SELECT :
Exécutions :
Pointez l’ascenseur de la liste puis retirer le curseur de la souris sans parcourir les op-
tions.
__proto__: NodeList
Exécutions :
Pointez l’ascenseur de la liste puis retirer le curseur de la souris sans parcourir les op-
tions.
<form name="fName">
<select size=3 id="isel" name="nsel"
onClick="fsel(this,1)"
onChange="fsel(name,2)"
onSelect="fsel(id,5)"
onMouseOut="fsel(null)"
onKeyUp="fsel(isel,3)"
onWheel="fsel(nsel,4)">
<option value="NYS">Nystagmus</option>
<option value="PRB" selected>Presbytie</option>
<option value="GLC">Glaucome</option>
</select>
</form>
L’élément < Select > - 33 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
Exécution :
select#isel
0: <option value="NYS">
1: <option value="PRB" selected="">
2: <option value="GLC">
accessKey: ""
accessKeyLabel: ""
childElementCount: 3
id: "isel"
innerHTML:
"\n <option value=\"NYS\">Nystagmus</option>
L’élément < Select > - 34 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
innerText: "Nystagmus\nPresbytie\nGlaucome"
length: 3
localName: "select"
multiple: false
name: "nsel"
nodeName: "SELECT"
...
onabort: null
onanimationcancel: null
onanimationend: null
onanimationiteration: null
onanimationstart: null
onauxclick: null
onblur: null
oncanplay: null
oncanplaythrough: null
onchange: function onchange()
onclick: function onclick()
onclose: null
oncontextmenu: null
oncopy: null
oncut: null
ondblclick: null
ondrag: null
ondragend: null
ondragenter: null
ondragexit: null
ondragleave: null
ondragover: null
ondragstart: null
ondrop: null
ondurationchange: null
onemptied: null
onended: null
onerror: null
onfocus: null
ongotpointercapture: null
oninput: null
oninvalid: null
onkeydown: null
onkeypress: null
onkeyup: function onkeyup()
onload: null
onloadeddata: null
onloadedmetadata: null
onloadend: null
onloadstart: null
onlostpointercapture: null
onmousedown: null
onmouseenter: null
onmouseleave: null
onmousemove: null
onmouseout: function onmouseout()
onmouseover: null
onmouseup: null
onmozfullscreenchange: null
onmozfullscreenerror: null
onpaste: null
onpause: null
onplay: null
onplaying: null
onpointercancel: null
onpointerdown: null
onpointerenter: null
onpointerleave: null
onpointermove: null
onpointerout: null
onpointerover: null
onpointerup: null
onprogress: null
onratechange: null
onreset: null
onresize: null
onscroll: null
onseeked: null
onseeking: null
onselect: function onselect()
onselectstart: null
onshow: null
onstalled: null
onsubmit: null
onsuspend: null
ontimeupdate: null
ontoggle: null
ontransitioncancel: null
ontransitionend: null
ontransitionrun: null
ontransitionstart: null
onvolumechange: null
onwaiting: null
onwebkitanimationend: null
onwebkitanimationiteration: null
onwebkitanimationstart: null
onwebkittransitionend: null
onwheel: function onwheel()
outerHTML:
"<select size=\"3\" id=\"isel\" name=\"nsel\"
onclick=\"fsel(this,1)\"
onchange=\"fsel(name,2)\"
onselect=\"fsel(id,5)\"
onmouseout=\"fsel(null)\"
onkeyup=\"fsel(isel,3)\"
onwheel=\"fsel(nsel,4)\">\n
<option value=\"NYS\">Nystagmus</option>\n
<option value=\"PRB\" selected=\"\">Presbytie</option>\n
<option value=\"GLC\">Glaucome</option>\n
</select>"
selectedIndex: 0
size: 3
tagName: "SELECT"
type: "select-one"
value: "NYS"
<prototype>: HTMLSelectElementPrototype {
item: item(), namedItem: namedItem(), add: add(), …
}
<form name="fName">
<select size=3 id="isel" name="nsel"
onClick="fsel(this,1)"
onChange="fsel(name,2)"
onSelect="fsel(id,5)"
onMouseOut="fsel(null)"
onKeyUp="fsel(isel,3)"
onWheel="fsel(nsel,4)">
<option value="NYS">Nystagmus</option>
<option value="PRB" selected>Presbytie</option>
<option value="GLC">Glaucome</option>
</select>
</form>
r=document.forms['fName'].isel
console.log(r);
s=document.forms['fName'].nsel
console.log(s);
s=document.getElementsByName('fName')
console.log(s);
s=document.getElementsByName('fName')[0]
console.log(s);
s=document.getElementsByName('nsel')
console.log(s);
L’élément < Select > - 38 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
s=document.getElementById('isel')
console.log(s);
s=document.getElementsByName('fName')[0][0]
console.log(s);
s=document.getElementsByName('fName')[0][0][0]
console.log(s);
s=document.getElementsByName('fName')[0][0][0][0]
console.log(s);
}
}
</script>
Exécution :
<form name="fName">
<select size=3 id="isel" name="nsel"
onClick="fsel(this,1)"
L’élément < Select > - 39 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
onChange="fsel(name,2)"
onContextMenu="fsel(id,5)"
onMouseOut="fsel(null)"
onKeyUp="fsel(isel,3)"
onWheel="fsel(nsel,4)">
<option value="NYS">Nystagmus</option>
<option value="PRB" selected>Presbytie</option>
<option value="GLC">Glaucome</option>
</select>
</form>
console.log(s);
s=document.forms["fName"].elements[n];
console.log(s);
s=document.getElementsByName(n)[0];
console.log("s.value =",s.value);
console.log("s.attributes =",s.attributes);
console.log("s.multple =",s.multple);
console.log("s.innerHTML =",s.innerHTML);
console.log("s.outerHTML =",s.outerHTML);
console.log("s.textContent =",s.textContent);
console.log("s.text =",s.text);
// « text » n'est pas attribut de Select.
console.log("".padEnd(50,"="));
}
}
</script>
12:43:30.684 ==================================================
12:43:30.993 test.html:21 Dans fsel(name)
12:43:30.993 test.html:23 nsel
12:43:30.994 test.html:26
<select size="3" id="isel" name="nsel"
onclick="fsel(this,1)" onchange="fsel(name,2)"
oncontextmenu="fsel(id,5)" onmouseout="fsel(null)"
onkeyup="fsel(isel,3)" onwheel="fsel(nsel,4)">
…
</select>
12:43:30.995 test.html:32
s.attributes = NamedNodeMap {
0: size, 1: id, 2: name, 3: onclick, 4: onchange, 5: oncontextmenu,
6: onmouseout, 7: onkeyup, 8: onwheel, size: size, id: id,
name: name, onclick: onclick, onchange: onchange, …
}
12:43:30.996 test.html:36
s.innerHTML =
<option value="NYS">Nystagmus</option>
<option value="PRB" selected="">Presbytie</option>
<option value="GLC">Glaucome</option>
12:43:30.996 test.html:38
s.outerHTML =
<select size="3" id="isel" name="nsel"
onclick="fsel(this,1)" onchange="fsel(name,2)"
oncontextmenu="fsel(id,5)" onmouseout="fsel(null)"
onkeyup="fsel(isel,3)" onwheel="fsel(nsel,4)">
<option value="NYS">Nystagmus</option>
<option value="PRB" selected="">Presbytie</option>
<option value="GLC">Glaucome</option>
</select>
12:43:30.997 test.html:40
s.textContent =
Nystagmus
Presbytie
Glaucome
12:53:47,376
<select id="isel" size="3" name="nsel"
onclick="fsel(this,1)" onchange="fsel(name,2)"
oncontextmenu="fsel(id,5)" onmouseout="fsel(null)"
onkeyup="fsel(isel,3)" onwheel="fsel(nsel,4)"> test.html:26:7
12:53:47,377
s.attributes = NamedNodeMap(9) [
size="3", id="isel", name="nsel",
onclick="fsel(this,1)", onchange="fsel(name,2)",
oncontextmenu="fsel(id,5)", onmouseout="fsel(null)",
onkeyup="fsel(isel,3)", onwheel="fsel(nsel,4)"
] test.html:32:7
12:53:47,380
s.multple = undefined test.html:34:7
12:53:47,380
s.innerHTML =
<option value="NYS">Nystagmus</option>
<option value="PRB" selected="">Presbytie</option>
<option value="GLC">Glaucome</option> test.html:36:7
12:53:47,381
s.outerHTML =
<select size="3" id="isel" name="nsel"
onclick="fsel(this,1)" onchange="fsel(name,2)"
oncontextmenu="fsel(id,5)" onmouseout="fsel(null)"
onkeyup="fsel(isel,3)" onwheel="fsel(nsel,4)">
<option value="NYS">Nystagmus</option>
<option value="PRB" selected="">Presbytie</option>
<option value="GLC">Glaucome</option>
</select> test.html:38:7
12:53:47,381
s.textContent = Nystagmus Presbytie Glaucome test.html:40:7
12:53:47,381
s.text = undefined test.html:42:7
12:53:47,382
================================================== test.html:45:7
<form name="fName">
<select size=3 id="isel" name="nsel"
onClick="fsel(this,1)"
onChange="fsel(name,2)"
onContextMenu="fsel(id,5)"
onMouseOut="fsel(null)"
onKeyUp="fsel(isel,3)"
onWheel="fsel(nsel,4)">
<option value="NYS">Nystagmus</option>
<option value="PRB" selected>Presbytie</option>
<option value="GLC">Glaucome</option>
</select>
</form>
console.log(s);
s=document.getElementById(s);
console.log("s.value =",s.value);
console.log("s.attributes =",s.attributes);
console.log("s.multple =",s.multple);
console.log("s.innerHTML =",s.innerHTML);
console.log("s.outerHTML =",s.outerHTML);
console.log("s.textContent =",s.textContent);
console.log("s.text =",s.text);
// « text » n'est pas attribut de Select.
console.log("".padEnd(50,"="));
}
}
</script>
13:09:27,483
s.attributes = NamedNodeMap(9) [
size="3", id="isel", name="nsel",
onclick="fsel(this,1)", onchange="fsel(name,2)",
oncontextmenu="fsel(id,5)", onmouseout="fsel(null)",
onkeyup="fsel(isel,3)", onwheel="fsel(nsel,4)"
] test.html:29:7
13:09:27,491
s.innerHTML =
<option value="NYS">Nystagmus</option>
<option value="PRB" selected="">Presbytie</option>
<option value="GLC">Glaucome</option> test.html:33:7
13:09:27,491
s.outerHTML =
<select size="3" id="isel" name="nsel"
onclick="fsel(this,1)" onchange="fsel(name,2)"
oncontextmenu="fsel(id,5)" onmouseout="fsel(null)"
onkeyup="fsel(isel,3)" onwheel="fsel(nsel,4)"
>
<option value="NYS">Nystagmus</option>
<option value="PRB" selected="">Presbytie</option>
<option value="GLC">Glaucome</option>
</select> test.html:35:7
13:09:27,492
s.textContent = Nystagmus Presbytie Glaucome test.html:37:7
13:09:27,493
s.text = undefined test.html:39:7
13:09:27,493
================================================== test.html:42:7
13:16:54.898 test.html:29
s.attributes = NamedNodeMap {
0: size, 1: id, 2: name, 3: onclick, 4: onchange,
5: oncontextmenu, 6: onmouseout, 7: onkeyup, 8: onwheel,
size: size, id: id, name: name, onclick: onclick,
onchange: onchange, …
}
13:16:54.903 test.html:35
s.outerHTML =
<select size="3" id="isel" name="nsel"
onclick="fsel(this,1)" onchange="fsel(name,2)"
oncontextmenu="fsel(id,5)" onmouseout="fsel(null)"
onkeyup="fsel(isel,3)" onwheel="fsel(nsel,4)"
>
<option value="NYS">Nystagmus</option>
<option value="PRB" selected="">Presbytie</option>
<option value="GLC">Glaucome</option>
</select>
13:16:54.904 test.html:37
s.textContent =
Nystagmus
Presbytie
Glaucome
13:16:54.904 test.html:42
==================================================
Notez la syntaxe très simplifiée pour accéder à la valeur et au texte, par rapport aux syn-
taxes qu’on verra plus loin.
<form name="myForm">
<select id="sname" onChange=dispSelectedItem(this)>
<option value=CAT>Cataracte</option>
<option value=CEC>Cécité</option>
<option value=GLC>Glaucome</option>
</select>
</form>
dispSelectedItem_2();
}
</script>
console.log("Select = ",sEl);
console.log("selectedIndex =", selElIdx);
console.log("Value =", selVal);
console.log("Text =", selText);
}
</script>
Exécution :
test.html:19
Select = <select id="sname" onchange="dispSelectedItem(this)">…</select>
test.html:20 selectedIndex = 2
test.html:21 Value = GLC
test.html:22 Text = Glaucome
test.html:39
Select = <select id="sname" onchange="dispSelectedItem(this)">…</select>
test.html:20 selecte
test.html:40 selectedIndex = 2
test.html:41 Value = GLC
test.html:42 Text = Glaucome
Vous pouvez vouloir par exemple que la sélection d’une option dans une liste déroulante
sélectionne automatiquement une autre option dans une autre liste déroulante distincte en
plus d’éventuellement entreprendre une action :
1ère méthode :
<body>
Sélection Section<br>
<select id="section" onchange="fOnClick(this);" size="7">
<option value=null>Select a Continent</option>
<option value="crane">Crane</option>
<option value="oeil">Oeil</option>
<option value="oreille">Oreille</option>
<option value="tronc">Tronc</option>
<option value="abdomen">Abdomen</option>
</select>
<br><br>Sélection organe<br>
<select id="organe" class="cOrg" size="7">
<option value="0">ORGANE INITIAL</option>
<option value="1">Pied</option>
<option value="2">Cheveu</option>
<option value="3">Ongle</option>
<option value="4">Peau</option>
</select>
</body>
function fOnClick(sElm) {
const idx = sElm.selectedIndex;
const listOrgIdx = sElm.options[idx].value;
const oS = document.querySelector(".cOrg");
// le <select> de éclass=cOrgé
// N'oubliez pas le point dans .cOrg.
nvlleOption.textContent = curList[i];
// ou nvlleOption.text = curList[i];
}
}
}
</script>
<form name="myForm">
<select size=3 onChange=dispSelectedItem(this)>
<option value=GM>Goma</option>
<option value=LZ>Luozi</option>
<option value=MD>Modu</option>
</select>
</form>
let sPv=document.getElementById("pv");
if(selValThis=="LZ"){
sPv.selectedIndex=0;
loc=s[selElIdxThis].text+" se trouve dans : "+
sPv[0].value+" ("+sPv[0].text+")";
}
else if(selValThis=="GM"){
sPv.selectedIndex=1;
loc=s[selElIdxThis].text+" se trouve dans : "+
sPv[1].value+" ("+sPv[1].text+")";
}
else if(selValThis=="MD"){
sPv.selectedIndex=-1;
loc=s[selElIdxThis].text+" se trouve dans : "+
"Inconnu";
}
console.log(loc);
}
</script>
if(selValThis=="BC"){
s.selectedIndex=0;
loc=s[selElIdxThis].value+" ("+s[selElIdxThis].text+")";
}
else if(selValThis=="ET"){
s.selectedIndex=1;
loc=s[selElIdxThis].value+" ("+s[selElIdxThis].text+")";
}
console.log(loc);
}
</script>
Exécution :
Cliques sur « Luozi » dans la première liste, et voyez ce qui se passe. Une option est
automatiquement sélectionnée dans la deuxième liste, et des messages s’affichent.
->
L’élément < Select > - 50 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
->
23:55:02.486 test.html:38 Goma se trouve dans : ET (Est)
->
23:58:59.922 test.html:38 Modu se trouve dans : Inconnu
Remarquez aussi que TOUTES les options de la deuxième liste déroulante (celle de
droite) sont automatiquement désélectionnées.
->
00:03:40.122 test.html:60 ET (Est)
->
00:07:43.048 test.html:60 BC (Bas-Congo)
<option value=
"http://www.amessi.org/diasoluka" selected="Selected">
diasoluka
</option>
<option value=
"https://www.youtube.com/watch?v=UUlPUdTALWQ">
Video
</option>
</select>
Exécution :
6 options non déclarées en trop. Préférez donc l’une des formes qui suivent :
<option value=
"http://diasmath.blogg.org">
diasmath
</option>
<option value=
"http://www.amessi.org/diasoluka" selected="Selected">
diasoluka
</option>
<option value=
"https://www.youtube.com/watch?v=UUlPUdTALWQ">
Video
</option>
</select>
console.log(
"sel.length =", sel.length, ", ",
"sel.options.length =", sel.options.length
);
// sel.length = 3 sel.options.length = 3
<option value=
"http://diasmath.blogg.org">
diasmath
</option>
<option value=
"http://www.amessi.org/diasoluka" selected="Selected">
diasoluka
</option>
<option value=
"https://www.youtube.com/watch?v=UUlPUdTALWQ">
L’élément < Select > - 53 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
Video
</option>
</select>
for(let k of sel.options) {
console.log(" * ",k.value);
if ( sel.options[sel.selectedIndex].selected === true ) {
isl = sel.options[sel.selectedIndex];
}
}
console.log(
"L'option sélectionnée =",
isl.text,"=>",
isl.value,
"\n","=".repeat(15),"\n");
}
</script>
La liste complète des EventHandlers : voyez les « onMachinTruc » plus loin (page 7).
<form name="fname">
<select id="sname" onchange="dispSelectedItem()">
<optgroup>Auteur
<option style="background:#979196;color:#CDDCB6" value="nada">
Avec « value »
</option>
<option value="Kuzayinsi">kzn</option>
<option value="Benakio" selected="Selected">bnk</option>
<option value="Ndozi">ndz</option>
</optgroup>
<optgroup>Volume
<option style="background:#979196;color:#CDDCB6" value="nada">
Sans « value »
</option>
<option>2003</option>
<option>2010</option>
<option>2018</option>
</optgroup>
<optgroup>URLs
<option style="background:#979196;color:#CDDCB6" value="nada">
URLs
</option>
<option value="http://diasmath.blogg.org">diasmath</option>
<option value=
"http://gha.centerblog.net/4-GHA-Nouvelle-Arme-pour-TUER-LA-MORT">
GHA-Nouvelle-Arme-pour-TUER-LA-MORT
</option>
<option value="https://www.youtube.com/watch?v=UUlPUdTALWQ">
Video
</option>
</optgroup>
</select>
</form>
if(selVal!="nada") {
document.getElementById("txtarea").innerHTML +=
selText +" : "+ selVal + "\n\n"
if(selVal.startsWith("http")) window.open(selVal);
}
}
if(selVal2!="nada") {
console.log(selText2 , selVal2)
}
}
onload = dispSelectedItem2;
// Dès le chargement :
// dispSelectedItem() doit déjà être définie.
</script>
On peut aussi directement accéder aux options d’un élément « select » via l’alias « this »,
au lieu de la longue formule
«
document.getElementById("sname")
.
options[document.getElementById("sname").selectedIndex].value
»
<select onchange="getval(this);">
L’élément < Select > - 56 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
<option value=
"http://diasmath.blogg.org">
diasmath
</option>
<option value=
"http://gha.centerblog.net/4-GHA-Nouvelle-Arme-pour-TUER-LA-MORT">
GHA-Nouvelle-Arme-pour-TUER-LA-MORT
</option>
<option value=
"https://www.youtube.com/watch?v=UUlPUdTALWQ">
Video
</option>
</select>
Au lieu de pointer une fonction externe à exécuter (exécuter une fonction externe), l’Event
(ici « onchange ») peut directement exécuter la fonction localement :
<select onchange="(function(p){console.log(p.value)})(this);">
<option value=
"http://diasmath.blogg.org">
diasmath
</option>
<option value=
"http://www.amessi.org/diasoluka">
diasoluka
</option>
<option value=
"https://www.youtube.com/watch?v=UUlPUdTALWQ">
Video
</option>
</select>
Exécution :
Au lieu d’une fonction, l’Event peut exécuter n’importe quelle instruction valide et isolée :
<select onchange="console.log(this.value);">
<option value=
"http://diasmath.blogg.org">
diasmath
</option>
<option value=
"http://gha.centerblog.net/4-GHA-Nouvelle-Arme-pour-TUER-LA-MORT">
GHA-Nouvelle-Arme-pour-TUER-LA-MORT
</option>
<option value=
"https://www.youtube.com/watch?v=UUlPUdTALWQ">
Video
</option>
</select>
Exécution :
<script type="text/javascript">
const d = document.querySelector("idt");
function selectAction(event) {
idt.innerHTML+=`value = ${event.target.value}\n`;
}
</script>
OnChange<br>
<label>Votre choix :<br></label>
<select size="6" onchange="selectAction(event);" id="sel">
<option value="nom">DIASOLUKA</option>
<option value="prenom">Luyalu</option>
<script>
document.write(
`<option value = "annee" selected="selected">
${new Date().toLocaleString()}</option>`
);
</script>
</select>
<script>
let cptr=0;
document.getElementById('ida').addEventListener('click', function(e) {
const s = document.getElementById("sel");
document.getElementById('idt').addEventListener('click', function(e) {
const s = document.getElementById("sel");
console.log("Current Select Options =",s.options);
console.log("e =",e);
console.log("e.target =",e.target);
console.log("e.srcElement =",e.srcElement);
console.log("e.button =",e.button);
console.log("e.buttons =",e.buttons);
console.log("e.clientX =",e.clientX);
console.log("e.clientY =",e.clientY);
console.log("e.composed =",e.composed);
console.log("e.ctrlKey =",e.ctrlKey);
console.log("e.currentTarget =",e.currentTarget);
console.log("e.originalTarget =",e.originalTarget);
console.log("e.defaultPrevented =",e.defaultPrevented);
console.log("e.preventDefault =",e.preventDefault);
console.log("e.detail =",e.detail);
console.log("e.eventPhase =",e.eventPhase);
console.log("e.explicitOriginalTarget =",e.explicitOriginalTarget);
console.log("e.isTrusted =",e.isTrusted);
console.log("e.layerX =",e.layerX);
console.log("e.layerY =",e.layerY);
console.log("e.metaKey =",e.metaKey);
console.log("e.movementX =",e.movementX);
console.log("e.movementY =",e.movementY);
console.log("e.mozInputSource =",e.mozInputSource);
console.log("e.mozPressure =",e.mozPressure);
console.log("e.offsetX =",e.offsetX);
console.log("e.offsetY =",e.offsetY);
console.log("e.originalTarget =",e.originalTarget);
console.log("e.pageX =",e.pageX);
console.log("e.pageY =",e.pageY);
console.log("e.rangeOffset =",e.rangeOffset);
console.log("e.rangeParent =",e.rangeParent);
console.log("e.region =",e.region);
console.log("e.relatedTarget =",e.relatedTarget);
console.log("e.returnValue =",e.returnValue);
console.log("e.screenX =",e.screenX);
console.log("e.screenY =",e.screenY);
console.log("e.shiftKey =",e.shiftKey);
console.log("e.srcElement =",e.srcElement);
console.log("e.timeStamp =",e.timeStamp);
console.log("e.type =",e.type);
console.log("e.view =",e.view);
console.log("e.which =",e.which);
L’élément < Select > - 60 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
console.log("e.x =",e.x);
}
);
</script>
e.button = 0 test.html:47:7
e.buttons = 0 test.html:48:7
e.clientX = 120 test.html:49:7
e.clientY = 217 test.html:50:7
e.composed = true test.html:51:7
e.ctrlKey = false test.html:52:7
e.detail = 1 test.html:57:7
e.eventPhase = 2 test.html:58:7
e.explicitOriginalTarget = <textarea id="idt" style="width:233;height:100"
placeholder="`Cliquez_ici_pour_afficher_l'event.`">
test.html:59:7
e.which = 1 test.html:85:7
e.x = 120 test.html:86:7
<option value="nom">Diasoluka</option>
<option value="postnom">Luyalu</option>
<option value="planete" selected="selected">Terre</option>
<option value="etoile" onclick='fSelectedIndex(-1);'>Soleil</option>
<script>
document.write(
`<option value='annee'>${new Date().toLocaleString()}</option>`
);
</script>
</select>
else if(p==4){
e.selectedIndex=p;
let i = e.options[e.selectedIndex];
console.log("L'index actuel d'option sélectionnée = ", e.selectedIndex);
console.log("Label = ", i.text, ', value = ', i.value);
}
else if(p==-1){
e.selectedIndex=p;
L’élément < Select > - 63 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
let i = e.options[e.selectedIndex];
console.log("L'index actuel d'option sélectionnée = ", e.selectedIndex);
}
Exécution :
Pour sélectionner une option, on peut utiliser au moins l’une des deux syntaxes compri-
mées ci-dessous :
« e.selectedIndex = p-1 »
ou
« e.options[p-1].selected = true »
e étant « e = document.getElementById("selelect_ID") »
Toutefois, les deux ne réagissent pas exactement de la même façon quand l’indice (index)
proposé est hors limite (inférieur à zéro ou supérieur à « select.length - 1 »).
<option value="nom">Diasoluka</option>
<option value="postnom">Luyalu</option>
<option value="planete" selected="selected">Terre</option>
<option value="etoile" onclick='fSelectedIndex(-1);'>Soleil</option>
<script>
document.write(
"<option value='annee'>"+new Date().toLocaleString()+"</option>"
);
</script>
</select>
if(q==1) {
console.log(
" AVEC « E.SELECTEDINDEX=P-1 » "
.padStart(45,"*").padEnd(50,"*")
);
console.log("".padEnd(50,"="));
e.selectedIndex=p-1;
}
else if(q==2) {
console.log(
" AVEC « E.OPTIONS[P-1].SELECTED = TRUE » "
.padStart(45,"*").padEnd(50,"*")
);
console.log("".padEnd(50,"="));
e.options[p-1].selected = true;
}
let i = e.options[e.selectedIndex];
console.log(
Exécution :
Si « select » n’est pas défini pour une multisélection (avec l’attribut « muti »), et qu’on y
sélectionne quand-même plusieurs options, « selectedIndex » retournera l’index de la
dernière option sélectionnée rencontrée qui deviendra la seule option sélectionnée, et la
« value » de l’élément « select » sera naturellement aussi celle de la dernière option sé-
lectionnée. Voyons ça.
Si « select » est défini pour une multisélection (avec l’attribut « muti »), « selectedIn-
dex » retournera l’index de la première option sélectionnée rencontrée et toutes les autres
sélections persisteront. Voyons comment gérer une multiple sélection d’options.
<script>
document.write(
`<option value="Annee"
selected='selected'>${new Date().toLocaleString()}</option>`
);
</script>
</select>
<br>
<textarea onclick="fSelectedIndex();" id="tid"
style="height:200;width:270">
</textarea>
Exécution :
Ce qui suit est valable seulement à titre d’illustration, seulement pour le code ci-dessus.
Faites un « click [gauche] » sur la « textarea » pour afficher. Ajoutez la sélection de par
exemple « Postnom » avec « CTRL-RETOUR », puis sélectionnez seulement
« ETOILE » en cliquant dessus.
<script>
document.write(
`<option value = "annee" selected="selected">
${new Date().toLocaleString()}</option>`
);
</script>
</select>
<button id="idb">CHANGE</button>
<br><button id="ida" style="width:233">AJOUT D'OPTION & l'Event</button>
<br><textarea id="tid" style="height:320"></textarea>
if(p==-1) e.selectedIndex=p;
else {
for(let k=0 , l=e.length ; k<l ; k++){
if(e.options[k].selected) {
z.innerHTML+=
`${e.options[k].value} = ${e.options[k].text}`;
}
}
z.innerHTML+="\n\n"
}
}
</script>
const a=[
["DR","CAT","MD","HR","XR"],
['D?collement R?tine','CATARACTE',
'Myod?sopsie','H?m?ralopie','X?rophtalmie']
];
for(let k=0 , l=e.length ; k<l ; k++){
e.options[k].text = a[0][k];
e.options[k].value= a[1][k];
}
}
let cptr=0;
document.getElementById('ida').addEventListener('click', function(e){
const s = document.getElementById("sel");
console.log("e =",e);
console.log("e.target =",e.target);
console.log("e.button =",e.button);
console.log("e.buttons =",e.buttons);
console.log("e.clientX =",e.clientX);
console.log("e.clientY =",e.clientY);
console.log("e.ctrlKey =",e.ctrlKey);
console.log("e.defaultPrevented =",e.defaultPrevented);
console.log("e.preventDefault =",e.preventDefault);
console.log("e.layerX =",e.layerX);
console.log("e.layerY =",e.layerY);
console.log("e.movementX =",e.movementX);
console.log("e.movementY =",e.movementY);
console.log("e.offsetX =",e.offsetX);
console.log("e.offsetY =",e.offsetY);
console.log("e.pageX =",e.pageX);
console.log("e.pageY =",e.pageY);
console.log("e.rangeParent =",e.rangeParent);
console.log("e.screenX =",e.screenX);
L’élément < Select > - 74 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
console.log("e.screenY =",e.screenY);
console.log("e.shiftKey =",e.shiftKey);
console.log("e.type =",e.type);
console.log("e.view =",e.view);
console.log("e.which =",e.which);
console.log("e.x =",e.x);
}
);
document.getElementById('idb').addEventListener('click', fChange);
</script>
Exempled’exécution :
Cliquez droit dans la liste [déroulante] de sélection puis annuler avec « ESCAPE », puis
cilquez sur Etoile pour tout désélectionner (observez bien ce qui se passe).
À ce niveau, ajoutons une nouvelle option en tapant sur ce bouton. La nouvelle option
s’est ajoutée et la liste actualisée de l’event s’est affichée dans la fenêtre de la console.
<CTRL-Cliquons> sur cette nouvelle option, puis cliquons sur HT.
<select class="cSel"></select>
<div class="cDiv"></div>
var s = document.querySelector(".cSel");
var d = document.querySelector(".cDiv");
var b = document.querySelector(".iBut");
Jongler avec les « value » et « text » des « options » d’un élément « select » :
Et Encore :
"fSel3(options[this.selectedIndex].text);">
<option value="0">Sélectionner</option>
<option value="1">Un</option>
<option value="2" selected>Deux</option>
<option value="3">Trois</option>
</select>
// options[this.selectedIndex].value
let fSel = (sIdx) => console.log(sIdx,
s.options[sIdx].text,
s.options[sIdx].textContent, s.options[sIdx].label);
// options[this.selectedIndex].text
// options[this.selectedIndex].textContent
// options[this.selectedIndex].label
// options[this.selectedIndex].innerHTML
let fSel3= (sIdx) => {
console.log(sIdx);
}
</script> <!-- fSel -->
Au chargement :
Pour exploiter au mieux et à fond cet élément HTML/DOM comme tout autre objet, il con-
vient de connaître toutes ses propriétés, listables par exemple à la console par exemple
de Firefox Quantum 64.0b13 ou de Yandex Version 18.10.1.385 beta.
Voici ainsi quelques propriétés et méthodes disponibles pour l’élément Select ou HTML-
SelectElement, la plupart d’entre elles sont aussi valables pour d’autres objets :
Object.getOwnPropertyDescriptors(HTMLSelectElement)
1. {length: {…}, name: {…}, arguments: {…}, caller: {…}, prototype: {…}}
1. arguments: {value: null, writable: false, enumerable: false, configurable: false}
2. caller: {value: null, writable: false, enumerable: false, configurable: false}
3. length: {value: 0, writable: false, enumerable: false, configurable: true}
4. name: {value: "HTMLSelectElement", writable: false, enumerable: false, configurable: true}
5. proto-
type: {value: HTMLSelectElement, writable: false, enumerable: false, configurable: false}
6. __proto__: Object
prototype: HTMLSelectElementPrototype
add: function add()
autocomplete: Getter & Setter
autofocus: Getter & Setter
checkValidity: function checkValidity()
constructor: function ()
disabled: Getter & Setter
form: Getter
item: function item()
labels: Getter
length: Getter & Setter
multiple: Getter & Setter
name: Getter & Setter
namedItem: function namedItem()
options: Getter
remove: function remove()
reportValidity: function reportValidity()
required: Getter & Setter
selectedIndex: Getter & Setter
selectedOptions: Getter
setCustomValidity: function setCustomValidity()
size: Getter & Setter
type: Getter
validationMessage: Getter
validity: Getter
value: Getter & Setter
willValidate: Getter
Symbol(Symbol.iterator): function values()
<prototype>: HTMLElementPrototype {
click: click(), focus: focus(), blur: blur(), …
}
constructor: ()
length: 0
name: "HTMLSelectElement"
prototype: HTMLSelectElementPrototype
add: function add()
autocomplete: Getter & Setter
autofocus: Getter & Setter
checkValidity: function checkValidity()
constructor: function ()
disabled: Getter & Setter
form: Getter
item: function item()
labels: Getter
length: Getter & Setter
<prototype>: HTMLElementPrototype
accessKey: Getter & Setter
accessKeyLabel: Getter
blur: function blur()
click: function click()
constructor: function ()
contentEditable: Getter & Setter
contextMenu: Getter
dataset: Getter
dir: Getter & Setter
draggable: Getter & Setter
focus: function focus()
hidden: Getter & Setter
innerText: Getter & Setter
isContentEditable: Getter
lang: Getter & Setter
offsetHeight: Getter
offsetLeft: Getter
offsetParent: Getter
offsetTop: Getter
offsetWidth: Getter
<prototype>: ElementPrototype
after: function after()
animate: function animate()
append: function append()
attributes: Getter
before: function before()
childElementCount: Getter
children: Getter
classList: Getter & Setter
className: Getter & Setter
clientHeight: Getter
clientLeft: Getter
clientTop: Getter
clientWidth: Getter
closest: function closest()
constructor: function ()
firstElementChild: Getter
getAttribute: function getAttribute()
getAttributeNS: function getAttributeNS()
L’élément < Select > - 86 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
Symboles de HTMLSelectElement :
Symbol(Symbol.hasInstance): Symbol.hasInstance()
length: 1
name: "[Symbol.hasInstance]"
<prototype>: function ()
<prototype>: ()
apply: function apply()
arguments: null
bind: function bind()
call: function call()
caller: null
constructor: function Function()
constructor: Function()
length: 1
name: "Function"
prototype: function ()
prototype: ()
apply: function apply()
arguments: null
bind: function bind()
call: function call()
caller: null
constructor: function Function()
length: 0
name: ""
toSource: function toSource()
toString: function toString()
Symbol(Symbol.hasInstance):
function Symbol.hasInstance()
<prototype>: Object { … }
<prototype>: function ()
<prototype>: ()
apply: function apply()
arguments: null
bind: function bind()
call: function call()
L’élément < Select > - 89 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
caller: null
constructor: function Function()
length: 0
name: ""
toSource: function toSource()
toString: function toString()
Symbol(Symbol.hasInstance):
function Symbol.hasInstance()
<prototype>: Object { … }
length: 0
name: ""
length: 0
name: ""
toSource: function toSource()
toString: function toString()
Symbol(Symbol.hasInstance): function Symbol.hasInstance()
<prototype>: Object { … }
<prototype>: ()
length: 0
name: "HTMLElement"
prototype: HTMLElementPrototype {
click: click(), focus: focus(), blur: blur(), …
}
Symbol(Symbol.hasInstance): function Symbol.hasInstance()
<prototype>: function ()
<prototype>: ()
ATTRIBUTE_NODE: 2
CDATA_SECTION_NODE: 4
COMMENT_NODE: 8
DOCUMENT_FRAGMENT_NODE: 11
DOCUMENT_NODE: 9
DOCUMENT_POSITION_CONTAINED_BY: 16
DOCUMENT_POSITION_CONTAINS: 8
DOCUMENT_POSITION_DISCONNECTED: 1
DOCUMENT_POSITION_FOLLOWING: 4
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32
DOCUMENT_POSITION_PRECEDING: 2
DOCUMENT_TYPE_NODE: 10
ELEMENT_NODE: 1
ENTITY_NODE: 6
ENTITY_REFERENCE_NODE: 5
NOTATION_NODE: 12
PROCESSING_INSTRUCTION_NODE: 7
TEXT_NODE: 3
length: 0
name: "Node"
prototype: NodePrototype {
L’élément < Select > - 90 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
Mots-clés :
diasfb@mail2world.com
Autre Lecture :
https://www.scribd.com/document/374738470/Le-Plus-Grand-Secret-de-La-Creation
• https://www.scribd.com/document/377036251/Le-Dosage-Des-Medicaments-
en-Cac-Cas
• https://www.scribd.com/document/377035454/Le-Hasard-Des-Thermometres-
Non-contact-a-Infrarouge
• https://www.scribd.com/document/376222482/Petite-Introduction-Aux-
Fonctions-JavaScript
• https://www.scribd.com/document/376221919/La-Foi-en-Jesus-Christ-Pour-
Quoi-Faire
• https://www.scribd.com/document/375689778/Lacuite-visuelle-angulaire
• https://www.scribd.com/document/375349851/La-variable-This
L’élément < Select > - 92 / 93 - lundi, 11. mars 2019 (8:41 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome- XXIV
• https://www.scribd.com/document/375024162/Fonctions-Imbriquees-en-JS
• https://www.scribd.com/document/374789297/Format-Interne-Des-Objets-
JavaScript
• https://www.scribd.com/document/374788758/Iterations-en-JavaScript
• https://www.scribd.com/document/374738470/Le-Plus-Grand-Secret-de-La-
Creation
• https://www.scribd.com/document/374597969/Nouvelle-Formule-d-IMC-
indice-de-doduite-Selon-Dr-Diasoluka
• https://www.scribd.com/document/373847209/Property-Descriptors
• https://www.scribd.com/document/373833282/l-Objet-Global-Window
• https://www.scribd.com/document/372665249/Javascript-Tome-II
• https://www.scribd.com/document/355291488/motilite-oculaire-2
• https://www.scribd.com/document/355291239/motilite-oculaire-I
• https://www.scribd.com/document/355290248/Script-d-Analyses-Des-
Reflexes-Pupillomoteurs
• https://www.scribd.com/document/321168468/Renseignements-Id-et-
Anthropometriques
• https://www.scribd.com/document/320856721/Emission-31-Jul-2016
• https://www.scribd.com/document/318182982/Complication-Visuelle-du-
Traitement-de-La-Malaria
• https://www.scribd.com/document/318180637/Rapport-Entre-Oxymetrie-Et-
Type-Respiration
• https://www.scribd.com/document/315746265/Classification-Des-
Medicaments
• https://www.scribd.com/document/315745909/Incongruences-Heresies-et-
Heterodoxies-de-la-Notion-de-Laboratoire
• https://www.scribd.com/document/315745725/Rapport-Entre-Oxymetrie-Et-
Type-Respiration