L'element SELECT en HTML-XHTML-DOM-JavaScript

publicité
L’ ÉLÉMENT <SELECT> EN JAVASCRIPT
Pour Débutant
J AVA S C R I P T (Programmation Internet) V O L . X X I V
J.B. Dadet DIASOLUKA Luyalu Nzoyifuanga
+243 - 851278216 - 899508675 - 995624714 - 902263541 - 813572818
[email protected]
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 possède beaucoup de fonctionnalités et offre une quasi infinité de possibilités dont nous allons 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 à utiliser, 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 ».
L’EventHandler « onselect » n’agit pas, tandis que le
« onKeyUp » n’agit que quand la touche est « RETURN » ou une des touches de contrô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 « value » de l’élément « select » est celle de l’option sélectionnée. Au chargement,
c’est la dernière option présélectionnée qui est retenue comme sélectionnée.
La propriété « text » est le texte qui apparaît dans le « drop down box ».
La propriété « selectedOptions » de « HTMLSelectElementPrototype » liste toutes les
options sélectionnées. Voici quelques exploitations de cette propriété.
<select class=cSel size=10 multiple>
<option value="AUR">Aura</option>
<option value="AMB">Amblyopie</option>
J.D.B. DIASOLUKA Nz. Luyalu
<option
<option
<option
<option
<option
<option
<option
<option
</select>
JavaScript Tome- XXIV
value="AMR" selected=true>Amaurose</option>
value="CCT">Cécité Corticale</option>
value="SCC">Scotome Central</option>
value="SCS" selected="selected">Scotome Scintillant</option>
value="SCP">Scotome Positif</option>
value="SCN">Scotome Négatif</option>
value="PST" selected>Post-Image</option>
value="MCT">Migraines Cataméniales</option>
<script type="text/javascript"> "use strict";
const s = document.querySelector(".cSel"),
sv = s.value,
si = s.selectedIndex,
so = s.selectedOptions;
//
//
//
//
//
//
for(let i in so) console.log(so[i])
=> <option value="AMR" selected="true">
=> <option value="SCS" selected="selected">
=> <option value="PST" selected="">
=> function item()
=> function namedItem()
=> 3
for(let i of so) console.log(i) // Mieux que le for...in
// => <option value="AMR" selected="true">
// => <option value="SCS" selected="selected">
// => <option value="PST" selected="">
for(let i=0 , l=so.length ; i<l ; i++) // Mieux que for...in
console.log(so[i])
// => <option value="AMR" selected="true">
// => <option value="SCS" selected="selected">
// => <option value="PST" selected="">
console.dir("s.value =",sv);
// s.value = AMR
console.dir("s.selectedIndex =",si);
// s.selectedIndex = 2
console.log("value de s.selectedIndex =",s[si]);
// value de s.selectedIndex =
//
<option value="AMR" selected="true">
console.log("value de s.selectedIndex =",s[si].value);
// value de s.selectedIndex = AMR
console.log("text de s.selectedIndex =",s[si].text);
// text de s.selectedIndex = Amaurose
console.log("textContent de s.selectedIndex =",s[si].textContent);
// textContent de s.selectedIndex = Amaurose
console.log("innerHTML de s.selectedIndex =",s[si].innerHTML);
L’élément < Select >
- 2 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
// innerHTML de s.selectedIndex = Amaurose
console.log("outerHTML de s.selectedIndex =",s[si].outerHTML);
// outerHTML de s.selectedIndex =
//
<option value="AMR" selected="true">Amaurose</option>
console.log("innerText de s.selectedIndex =",s[si].innerText);
// innerText de s.selectedIndex = Amaurose
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 in » liste même des éléments internes « cachés ».
La boucle « for of » ne liste que les éléments attendus (ceux qui nous concernent directement).
Voici l’essentiel de la gestion de « Select » :
Cet exemple vaut pour les sélections multiples.
<select size=7 class="sid" multiple>
<option value="Lc">Leucome cornée</option>
<option value="Xe" selected>Xérophtalmie</option>
<option value="Ca">Cataracte</option>
L’élément < Select >
- 3 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
<option
<option
<option
<option
</select>
JavaScript Tome- XXIV
value="Gl" selected="selected">Glaucome</option>
value="Tr">Blunt Trauma</option>
value="Np" selected="selected">Neurapraxis</option>
value="Hc" selected="selected">Hemispherectomie</option>
<br>
<a href="javascript:void(0)" id="order">Lister Sélections</a>
<div id="dispMsg"></div>
<script type="text/javascript"> "use strict";
let goBut = document.getElementById("order");
let s = document.querySelector(".sid");
let dispMsgBox = document.getElementById("dispMsg");
goBut.addEventListener("click", function() {
let selOpts = s.selectedOptions;
let dispMsg = "";
for (let i=0, l=selOpts.length ; i<l
; i++) {
if (dispMsg === "") {
dispMsg = "<br>Les Selected:";
}
dispMsg += "<br>";
dispMsg += selOpts[i].value + " (=> ";
dispMsg += selOpts[i].label + " = ";
dispMsg += selOpts[i].textContent + " = ";
dispMsg += selOpts[i].text+")";
// 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>
L’élément < Select >
- 4 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
<select size=3 onChange="fct(this,this.value);" id="sid">
<option value="Xe">Xérophtalmie</option>
<option value="Ca">Cataracte</option>
<option value="Gl" selected="selected">Glaucome</option>
<option value="Tr">Blunt Trauma</option>
<option value="Np" selected="selected">Neurapraxis</option>
<option value="Hc" selected="selected">Hemispherectomie</option>
</select>
<script type="text/javascript"> 'use strict';
const fct = (s,v) => {
console.log( "La value de l'option sélectionnée est =", v );
console.log( "s[s.selectedIndex].text =",
s[s.selectedIndex].text );
console.log( "s.selectedOptions[0].text =",
s.selectedOptions[0].text );
}
</script>
Exécution :
<- Ceci, au chargement !
Quand aucune option n’est sélectionnée, aucune d’entre elles ne sera automatiquement
sélectionnée.
Mais quand plusieurs options sont sélectionnées, il y a deux possibiités :
1. Si l’attribut « multiple » est spécifié => toutes les options sélectionnées seront sélectionnées ;
<select id="iSel" class="cSel" multiple size=5>
<option value="eb">EBALE</option>
<option value="sn">SANI</option>
L’élément < Select >
- 5 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
<option value="ep" selected>EPASOLA</option>
<option value="nz">NZETE</option>
<option value="eb" selected>EBALE</option>
</select>
Notez dans le code source ci-dessus que l’ « option » avec la « value » (et son « label ou texte » identique « EBALE ») sont repris deux fois, la première fois non sélectionnée, la deuxième fois sélectionnée. Cela a été respecté dans l’affichage avec Yandex & QupZilla ci-dessous à gauche avec sélection en gris, et Firefox avec sélection en
bleu.
Si on rafraîchit la page, tout est status quo avec yandex et QupZilla ;
tandis qu’avec Firefox quand on rafraîchit la page, la première occurrence de l’option avec « value="eb" » et label = « EBALE »
devient aussi sélectionnée.
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 navigateurs].
<select id="iSel" class="cSel" size=5>
<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>
3. Bien entendu, si « multiple » est spécifié alors qu’aucun élément n’est sélectionné, il
n’aura aucun effet.
<select id="iSel" class="cSel" multiple size=5>
<option value="eb">EBALE</option>
<option value="sn">SANI</option>
<option value="ep">EPASOLA</option>
<option value="nz">NZETE</option>
<option value="eb">EBALE</option>
</select>
L’élément < Select >
- 6 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
L’accès à un élément HTML/DOM peut se faire de plusieurs manières, soit avec un « document . getElementById ( ) » ou un peu plus délicatement (en respectant le point devant le om de classe) avec un « document . querySelector ( ) », soit très péniblement
avec un « document . getElementsByName ( ) ».
La méthode « document . querySelector ( ) » utilisée avec l’attribut « class = » a exactement le même effet que la méthode « document . getElementById ( ) » utilisée avec
l’attrbut « id = ».
Utilisons la version avec l’attribut « multiple » spécifié, et appuyons le bouton « SUBMIT »
après rafraîchissement de la page.
<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>
<script> "use strict";
const f = _ => {
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);
for(let i of ss) console.log(`${".".repeat(3)} ${ i.value }`);
for(let i of cs) console.log(`${".".repeat(9)} ${ i.value }`);
}
</script>
L’élément < Select >
- 7 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Avec Firefox :
Issu de document.getElementById('iSel');
Issu de document.querySelector('.cSel');
Avec Yandex (QupZilla n’a pas de fenêtre de la console) :
Issu de document.getElementById('iSel');
L’élément < Select >
- 8 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Issu de document.querySelector('.cSel');
Listage de TOUTES les options (les sélectionnées et non), via la méthode « getElementsByName », en indiquant celles qui sont sélectionnées :
<select name="nSel" size=5 multiple>
<option value="eb">EBALE</option>
<option value="sn">SANI</option>
<option value="ep" selected="selected">EPASOLA</option>
<option value="nz">NZETE</option>
<option value="eb" selected="selected">EBALE</option>
</select>
<br><button onclick="f()">SUBMIT</button>
<script> "use strict";
const f = _ => {
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>
Avec Firefox : Trois options sélectionnées.
Avec Yandex : Deux options seulement sélectionnées.
L’élément < Select >
- 9 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Accès à l’élément « Select » et ses options, via DOM :
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>
<script type="text/javascript"> "use strict";
let fgo = _ => {
var selVal = fname.sname.options[
fname.sname.selectedIndex
].value;
var selText = fname.sname.options[
fname.sname.selectedIndex
].text;
if(selVal=="Choix"); // Ne faites rien!
else{
console.log(selVal,selText)
console.log(selVal.padStart(35,"."))
console.log(selText.padEnd(35,"*"))
}
}
</script>
<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>
L’élément < Select >
- 10 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
<script type="text/javascript"> "use strict";
let fgo = p => {
var selVal = p.sname.options[
p.sname.selectedIndex
].value;
var selText = p.sname.options[
p.sname.selectedIndex
].text;
if(selVal=="Choix"); // Ne faites rien!
else{
console.log(selVal,selText)
console.log(selVal.padStart(35,"."))
console.log(selText.padEnd(35,"*"))
}
}
</script>
<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>
<script type="text/javascript"> "use strict";
let fgo = p => {
let el=p.sname;
var selVal = el.options[
el.selectedIndex
].value;
var selText = el.options[
el.selectedIndex
].text;
if(selVal=="Choix"); // Ne faites rien!
else{
console.log(selVal,selText)
console.log(selVal.padStart(35,"."))
console.log(selText.padEnd(35,"*"))
}
}
</script>
<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 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
</select>
</form>
<script type="text/javascript"> "use strict";
let fgo = p => {
const el=p;
var selVal = el.options[
el.selectedIndex
].value;
var selText = el.options[
el.selectedIndex
].text;
if(selVal=="Choix"); // Ne faites rien!
else{
console.log(selVal,selText);
console.log(selVal.padStart(35,"."));
console.log(selText.padEnd(35,"*"));
}
}
</script>
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 -
dimanche, 26. mai 2019 (1:02 )
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>
Voici un exemple avec « document.getElementsByName » :
On obtient bien l’index de l’option sélectionnée, de là à obtenir la value et le text il ne reste
qu’un pas (voir page 38 : IV.
Avec la « id » ou le « name » de l’élément SELECT).
<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");
const f_act = _ =>{
var d = fName.iName;
d.value += "document.getElementsByName('sName'): "+s+"\n";
d.value += "document.getElementsByName('sName')[0]: "+s[0]+"\n";
d.value +=
"document.getElementsByName('sName')[0].options: "+
L’élément < Select >
- 13 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
s[0].options+"\n";
d.value +=
"document.getElementsByName('sName')[0].options.selectedIndex: "+
s[0].options.selectedIndex+"\n\n";
console.log("*".repeat(3)," document.getElementsByName('sName'): ",s);
console.log("document.getElementsByName('sName')[0]: ",s[0]);
console.log("document.getElementsByName('sName')[0].options: ",
s[0].options);
console.log(
"document.getElementsByName('sName')[0].options.selectedIndex => ",
s[0].options.selectedIndex+"\n\n");
}
var l = document.querySelector (".sClass");
l.addEventListener("change", f_act);
</script>
Dans la Division :
Dans la console :
L’élément < Select >
- 14 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Voici un exemple avec « document.querySelector » :
<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>
<select size=3 style="width:100"
onclick="alert('2è SELECT ignoré par QUERYSELECTOR')">
<option value="Mélanome">Ml</option>
<option value="Naevus">Nv</option>
<option value="Pemphigus">Pp</option>
<option value="Leucodermie" selected>Ld</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 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
s.value);
d.textContent += "Selected Option Value: "+s.value;
d.innerHTML += " | ";
}
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:
Voci un exemple avec « document.getElementById » :
<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>
<script type="text/javascript"> 'use strict';
let s = document.getElementById("sid");
let i = s.selectedIndex;
L’élément < Select >
- 16 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
let o = s.selectedOptions;
console.log( "s =",document.getElementById("sid") );
// <select id="sid">
console.log( "s.value =",s.value );
// s.value = 6
console.log( "s.textContent =",s.textContent );
// s.textContent =
//
Xérophtalmie
//
Cataracte
//
Glaucome
//
Blunt Trauma
//
Neurapraxis
//
Hemispherectomie
console.log( "s.selectedIndex =",i );
// s.selectedIndex = 5
console.log( "s.selectedOptions =",o );
// s.selectedOptions = HTMLCollection [ option ]
console.log( "s.value =",s.value); // s.value = 6
console.log( "s[i] =",s[i]);
// s[i] = <option value="6" selected="selected">
console.log( "s[i].value =",s[i].value); // s[i].value = 6
console.log( "s[o] =",s[o] );
// s[o] = undefined
console.log( "s[i].text =",s[i].text);
// Hemispherectomie
console.log( "s[i].textContent =",s[i].textContent );
// Hemispherectomie
console.log(
"document.getElementById('sid').selectedOptions[0].value =",
document.getElementById('sid').selectedOptions[0].value);
//
// document.getElementById('sid').selectedOptions[0].value = 6
console.log( "o[0].value =",o[0].value ); // o[0].value = 6
console.log( "o[0] =",o[0] );
//
// o[0] = <option value="6" selected="selected">
</script>
Exécution :
L’élément < Select >
- 17 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Avec Firefox :
Avec Yandex :
L’élément < Select >
- 18 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Un peu plus de détails / possibilités :
<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>
<script type="text/javascript"> "use strict";
console.log(`=`.repeat(30)+`\nAvec NAME\n`+`=`.repeat(30))
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 -
dimanche, 26. mai 2019 (1:02 )
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 -
dimanche, 26. mai 2019 (1:02 )
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))
console.log( `document.getElementById('ilist').innerText =`);
console.log(`${document.getElementById('ilist').innerText}`);
</script>
ScreenShots de l’exécution :
L’élément < Select >
- 21 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
.!. ATTENTION .!.
I.
Quand vous avez un élément « select » avec par exemple un ID « id=list »,
l’instruction suivante :
document.getElementById("list").value="NIMPORTEQUOI";
sélectionne donc l’option qui a la value « NIMPORTEQUOI ». Si aucune option n’a la value == 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>
L’élément < Select >
- 22 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
<option value="55">Classe7</option>
<option value="98">Classe8</option>
<option value="26">Classe9</option>
</select>
</form>
<script type="text/javascript"> "use strict";
let f = _ => {
document.getElementById("list").value=97;
console.log(
document.getElementById("list"),
document.getElementsByName("list"),
)
}
</script>
Avec donc
document.getElementById("list").value=97;
Exécution :
->
Avec
document.getElementById("list").value=970;
Exécution :
->
L’élément < Select >
- 23 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
II.
JavaScript Tome- XXIV
Quand vous avez un élément select par exemple de nom « name=nsel », les instructions 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>
<script type="text/javascript"> "use strict";
let f = _ => {
document.getElementsByName("list").value=97;
console.log(
document.getElementById("list"),
document.getElementsByName("list"),
)
}
</script>
L’élément < Select >
- 24 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
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>
<script type="text/javascript"> "use strict";
const fsel = i => {
console.log("Dans fsel(nsel)");
console.log("i.options =", i.options);
console.log("i.options.selectedIndex =", i.options.selectedIndex);
console.log("i.options.length =",i.options.length);
console.log("i.options.iNY =",i.options.iNY);
console.log("i.options[iNY] =",i.options[iNY]);
// i.options[iNY] = undefined
L’élément < Select >
- 25 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
alert("Observez le changement de sélection")
console.log(
"i.options.iNY.selected=true =",i.options.iNY.selected=true);
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 :
À l’affichage de la liste déroulante, « cliquez –droit » sur « Glaucome », et après avoir
fermé le message pop-up vous verrez que la sélection aura passé à « Nystagmus », et
lisez les messages affichés dans la console pour découvrir les propriétés de l’élément (ou
objet) « option » de l’élément (encore un objet) « select ».
->
15:17:11,088
Dans fsel(nsel)
test.html:13:2
15:17:11,093
i.options = HTMLOptionsCollection {
0: option,
1: option,
2: option#iNY,
length: 3,
selectedIndex: 1,
… }
test.html:14:2
i.options.selectedIndex = 1
i.options.length = 3
i.options.iNY = <option id="iNY" value="NYS">
i.options[iNY] = undefined
i.options.iNY.selected=true = true
i.options.label = undefined
i.options.item = function item()
i.options.item(0) = <option value="GLC">
test.html:15:2
test.html:16:2
test.html:17:2
test.html:19:2
test.html:23:2
test.html:26:2
test.html:29:2
test.html:30:2
15:17:11,108
15:17:11,109
15:17:11,110
15:17:11,111
15:17:15,994
15:17:15,995
15:17:15,995
15:17:15,997
Une option peut être manipulée directement et individuellement :
<form name="fName">
<select size=3 id="isel" name="nsel" onWheel="fWheel()" onContextMenu="fsel(isel)"
>
<label for="iNY"></label>
<option value="GLC" id="iGL">Glaucome</option>
L’élément < Select >
- 26 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
<option value="PRB" selected>Presbytie</option>
<option value="NYS" id="iNY">Nystagmus</option>
</select>
</form>
<script type="text/javascript"> "use strict";
const fsel = function(i) {
console.log("Dans fsel(isel)");
console.log("i.options =", i.options);
console.log("i.options.selectedIndex =", i.options.selectedIndex);
console.log("i.options.length =",i.options.length);
console.log("i.options.iNY =",i.options.iNY);
console.log("i.options[iNY] =",i.options[iNY]);
// i.options[iNY] = undefined
alert("Observez le changement de sélection")
console.log(
"i.options.iNY.selected=true =",i.options.iNY.selected=true);
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));
}
// Une option peut être manipulée
// individuellement et directement.
const fWheel = function(){
console.log("Dans fWheel()");
alert("Observez le changement de la 'value' et du 'text' ");
document.getElementById("iGL").value = "nVAL";
document.getElementById("iGL").text = "nTXT";
document.getElementById("iGL").selected = "selected";
document.getElementById("iGL").id = "nID";
// Changement de la valeur de 'id' en 'nID',
// Ci-dessous, utilisation de la nouvelle 'id'.
const s=document.getElementById("nID");
console.log(
"s.selected =", s.selected + " , " +
"s.value ",s.value + " , " +
"s.text =",s.text
);
}
</script>
Exécution :
L’élément < Select >
- 27 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Tout d’abord « cliquez-droit » sur « Glaucome », puis fermer le « pop-up » et le « menu
contextuel », et lisez ce qui est déjà affiché dans la fenêtre de la console.
Avec Yandex :
->
« Click-droit » sur « Glaucome »
->
->
Puis placez le curseur de la souris au-dessus du menu déroulant, et tournez très doucement le « Wheel » de la souris.
De nouveau on a une notification :
L’élément < Select >
- 28 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
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.
Voici l’ensemble de l’affichage dans la fenêtre de la console avec Yandex :
22:58:13.950 test.html:13
Dans fsel(isel)
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. HTMLOptionsCollection(3) [option#iGL, option, option#iNY, iGL: option#iGL,
iNY: option#iNY, selectedIndex: 1]
1.
2.
3.
4.
5.
6.
7.
0: option#nID
1: option
2: option#iNY
length: 3
selectedIndex: 0
iNY: option#iNY
nID: option#nID
8. __proto__: HTMLOptionsCollection
22:58:13.959 test.html:15
22:58:13.960 test.html:16
i.options.selectedIndex = 1
i.options.length = 3
22:58:13.960 test.html:17
L’élément < Select >
- 29 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
i.options.iNY =
<option value="NYS" id="iNY">Nystagmus</option>
22:58:13.961
22:58:15.021
22:58:15.022
22:58:15.022
22:58:15.023
test.html:19
i.options[iNY] = undefined
test.html:23
i.options.iNY.selected=true = true
test.html:26
i.options.label = undefined
test.html:29
i.options.item = ƒ item() { [native code] }
test.html:30
i.options.item(0) =
<option value="GLC" id="iGL">Glaucome</option>
22:58:17.324 test.html:37
22:58:18.733 test.html:48
Dans fWheel()
s.selected = true , s.value
nVAL , s.text = nTXT
Avec Firefox :
->
->
->
->
L’élément < Select >
- 30 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
23:24:19,359
Dans fsel(isel)
test.html:13:2
23:24:19,360
i.options = HTMLOptionsCollection {
0: option#iGL,
1: option,
2: option#iNY,
length: 3,
selectedIndex: 1,
…
}
test.html:14:2
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, …
}
23:24:19,364
23:24:19,365
i.options.selectedIndex = 1
i.options.length = 3
test.html:15:2
test.html:16:2
23:24:19,365
23:24:19,366
23:24:20,252
23:24:20,252
23:24:20,253
i.options.iNY = <option id="iNY" value="NYS">
i.options[iNY] = undefined
i.options.iNY.selected=true = true
i.options.label = undefined
i.options.item = function item()
test.html:17:2
test.html:19:2
test.html:23:2
test.html:26:2
test.html:29:2
23:24:20,253
i.options.item(0) = <option id="iGL" value="GLC">
test.html:30:2
23:25:26,219
23:26:37,738
Dans fWheel()
s.selected = true , s.value
L’élément < Select >
- 31 / 93 -
test.html:37:2
nVAL , s.text = nTXT
test.html:48:2
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Voyons maintenant la structure d’un objet select avec différents moyens d’acquisition de
l’élément SELECT :
I. Version avec « document.getElementsByName("isel") » :
<select size=3 id="isel" name="nsel"
onMouseOut="fsel(null)"
onClick="fsel(this,1)"
onChange="fsel(nsel,2)"
onKeyUp="fsel(isel,3)">
<option value="NYS">Nystagmus</option>
<option value="PRB" selected>Presbytie</option>
<option value="GLC">Glaucome</option>
</select>
<script type="text/javascript"> "use strict";
const fsel = (p,q) => {
console.log("Dans fsel(null)");
let s,r;
if(!p){
s=document.getElementsByName("isel");
console.log(s);
}
}
</script>
Exécutions :
Pointez l’ascenseur de la liste puis retirer le curseur de la souris sans parcourir les options.
Avec Firefox Quantum 64.0b13 :
09:09:14,308
09:09:14,309
Dans fsel(null)
test.html:14:5
NodeList []
test.html:18:7
length: 0
<prototype>: NodeListPrototype {
item: item(),
keys: keys(),
values: values(),
…
}
Avec Yandex Version 18.10.1.385 beta :
09:09:04.823
09:09:04.826
test.html:14
test.html:18
L’élément < Select >
Dans fsel(null)
NodeList []
length: 0
__proto__: NodeList
- 32 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
II. Version avec « this »
<select size=3 id="isel">
<option value="NYS">Nystagmus</option>
<option value="PRB" selected>Presbytie</option>
<option value="GLC">Glaucome</option>
</select>
<script type="text/javascript"> "use strict";
const fsel = _ => {
console.log(s.options[s.selectedIndex].value,
'=>',
s.options[s.selectedIndex].text);
}
const s=document.getElementById("isel");
s.addEventListener("click", fsel, false);
</script>
Exécutions :
Pointez l’ascenseur de la liste puis retirer le curseur de la souris sans parcourir les options.
Avec Firefox Quantum 64.0b13 et Yandex Version 18.10.1.385 beta :
III. Version avec « document . forms [ ' fName ' ] . elements [ 0 ] » :
<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>
<script type="text/javascript"> "use strict";
L’élément < Select >
- 33 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
const fsel = (p,q) => {
let s,r;
if(q==4){
console.log("Dans document.forms['fName'].elements[0]");
s=document.forms['fName'].elements[0]
console.log(s);
}
}
</script>
Exécution :
Avec Firefox Quantum 64.0b13:
11:03:21,331
Dans Dans document.forms['fName'].elements[0]
test.html:20:7
11:03:21,333
<select id="isel" size="3" 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)">
test.html:22:7
select#isel
0: <option value="NYS">
1: <option value="PRB" selected="">
2: <option value="GLC">
accessKey: ""
accessKeyLabel: ""
attributes: NamedNodeMap(9) [ size="3", id="isel", name="nsel", … ]
childElementCount: 3
childNodes: NodeList(7) [ #text, option, #text, … ]
children: HTMLCollection(3) [ option, option, option]
form: <form name="fName">
id: "isel"
innerHTML:
"\n <option value=\"NYS\">Nystagmus</option>
\n <option value=\"PRB\" selected=\"\">Presbytie</option>
\n <option value=\"GLC\">Glaucome</option>\n "
L’élément < Select >
- 34 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
innerText: "Nystagmus\nPresbytie\nGlaucome"
lastElementChild: <option value="GLC">
length: 3
localName: "select"
multiple: false
name: "nsel"
nextSibling: #text " "
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
L’élément < Select >
- 35 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
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
L’élément < Select >
- 36 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
onwaiting: null
onwebkitanimationend: null
onwebkitanimationiteration: null
onwebkitanimationstart: null
onwebkittransitionend: null
onwheel: function onwheel()
options: HTMLOptionsCollection(3) [ option, option, option]
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>"
ownerDocument: HTMLDocument file:///K:/DADET/PROGS/test.html
parentElement: <form name="fName">
parentNode: <form name="fName">
previousSibling: #text " "
selectedIndex: 0
selectedOptions: HTMLCollection [ option ]
size: 3
tagName: "SELECT"
textContent: "\n Nystagmus\n Presbytie\n Glaucome\n "
type: "select-one"
value: "NYS"
<prototype>: HTMLSelectElementPrototype {
item: item(), namedItem: namedItem(), add: add(), …
}
Avec Yandex Version 18.10.1.385 beta :
L’élément < Select >
- 37 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
11:00:40.616 test.html:20
Dans document.forms['fName'].elements[0]
11:00:40.620 test.html:22
<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)">
…
</select>
IV. Avec la « id » ou le « name » de l’élément SELECT :
<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>
<script type="text/javascript"> "use strict";
const fsel = (p,q) => {
let s,r;
if(q==3 || q==4){
console.log("Dans fsel(isel et nsel)");
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);
s=document.getElementById('isel')
console.log(s);
L’élément < Select >
- 38 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
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 :
V. Avec fsel ( name ) :
<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)"
L’élément < Select >
- 39 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
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>
<script type="text/javascript"> "use strict";
const fsel = (n,q) => {
let s;
if(q==2){
s=n
console.log("Dans fsel(name)");
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>
Exécution avec Yandex :
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"
L’élément < Select >
- 40 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
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:30
s.value = PRB
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:34
s.multple = undefined
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:43:30.997 test.html:42
s.text = undefined
12:43:30.997 test.html:45 ==================================================
Exécution avec Firefox :
12:53:45,454 ================================================== test.html:45:7
12:53:47,375
Dans fsel(name)
test.html:21:7
12:53:47,376
nsel
test.html:23:7
L’élément < Select >
- 41 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
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
test.html:30:7
s.value = PRB
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
VI. Avec fsel ( id ) :
<form name="fName">
L’élément < Select >
- 42 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
<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>
<script type="text/javascript"> "use strict";
const fsel = (i,q) => {
let s;
if(q==5){
s=i
console.log("Dans fsel(id)");
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>
Exécution avec Firefox :
13:09:27,480
Dans fsel(id)
test.html:21:7
13:09:27,482
isel
test.html:23:7
13:09:27,482
s.value = PRB
test.html:27:7
L’élément < Select >
- 43 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
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,490
s.multple = undefined
test.html:31: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
Exécution avec Yandex :
13:16:54.883
13:16:54.894
13:16:54.897
13:16:54.897
test.html:42 ==================================================
test.html:21
Dans fsel(id)
test.html:23
isel
test.html:27
s.value = GLC
13:16:54.898 test.html:29
s.attributes = NamedNodeMap {
0: size, 1: id, 2: name, 3: onclick, 4: onchange,
L’élément < Select >
- 44 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
5: oncontextmenu, 6: onmouseout, 7: onkeyup, 8: onwheel,
size: size, id: id, name: name, onclick: onclick,
onchange: onchange, …
}
13:16:54.902 test.html:31
s.multple = undefined
13:16:54.903 test.html:33 s.innerHTML =
<option value="NYS">Nystagmus</option>
<option value="PRB" selected="">Presbytie</option>
<option value="GLC">Glaucome</option>
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:39
s.text = undefined
13:16:54.904 test.html:42
==================================================
Voici un Double-Exemple simple gérant un élément SELECT :
La première fonction, « dispSelectedItem ( this ) » reçoit en paramètre une copie de
l’élément SELECT ONCLICK et le gère.
La deuxième fonction, « dispSelectedItem_2 () » récupère elle-même l’élément SELECT
Avec la méthode « getElementById ( «sId» ) » pour le gérer.
Les deux donnent exactement le même résultat.
Notez la syntaxe très simplifiée pour accéder à la valeur et au texte, par rapport aux syntaxes qu’on verra plus loin.
L’élément < Select >
- 45 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
<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>
<script type="text/javascript"> "use strict";
let dispSelectedItem = s => {
console.log("DANS « dispSelectedItem () »");
let selElIdxThis = s.selectedIndex,
selValThis
= s[selElIdxThis].value,
selTextThis = s[s.selectedIndex].text;
console.log("*** Avec SELECT passé via THIS :");
console.log("Select = ",s);
console.log("selectedIndex =", selElIdxThis );
console.log("Value =", selValThis );
console.log("Text =",selTextThis);
dispSelectedItem_2();
}
</script>
<script type="text/javascript"> "use strict";
let dispSelectedItem_2 =_=> {
console.log("\nDANS « dispSelectedItem_2 () »");
console.log("*** Avec SELECT obtenu via GETELEMENTBYID :")
let sEl=document.getElementById("sname"),
selElIdx = sEl.selectedIndex,
selVal = sEl[sEl.selectedIndex].value,
selText = sEl[sEl.selectedIndex].text;
console.log("Select = ",sEl);
console.log("selectedIndex =", selElIdx);
console.log("Value =", selVal);
console.log("Text =", selText);
}
</script>
Exécution :
À partir de cette liste déroulante repliée,
sélectionnez par exemple Glaucome :
L’élément < Select >
- 46 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Et voyez le listage dans la fenêtre de la console :
test.html:13
test.html:18
test.html:19
Select =
DANS « dispSelectedItem () »
*** Avec SELECT passé via THIS :
<select id="sname" onchange="dispSelectedItem(this)">…</select>
<select id="sname" onchange="dispSelectedItem(this)">
<option value="CAT">Cataracte</option>
<option value="CEC">Cécité</option>
<option value="GLC">Glaucome</option>
</select>
test.html:20
test.html:21
test.html:22
selectedIndex = 2
Value = GLC
Text = Glaucome
test.html:32
test.html:33
DANS « dispSelectedItem_2 () »
*** Avec SELECT obtenu via GETELEMENTBYID :
test.html:39
Select =
<select id="sname" onchange="dispSelectedItem(this)">…</select>
<select id="sname" onchange="dispSelectedItem(this)">
<option value="CAT">Cataracte</option>
<option value="CEC">Cécité</option>
<option value="GLC">Glaucome</option>
</select>
test.html:20 selecte
test.html:40
test.html:41
test.html:42
selectedIndex = 2
Value = GLC
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 :
L’élément < Select >
- 47 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
<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>
<script type="text/javascript"> "use strict";
const listOrgans = new Array(4)
listOrgans[null] = ["Sélection organe"];
listOrgans["crane"] = ["I = Olfactif", "II = Optique", " IV = Pathétique", "V
= Trijumeau", "VII = Facial", "X = Pneumogastrique (=Vague)"];
listOrgans["oeil"] = ["Rétine", "Descemet", "Hyaloéde", "Bruch", "Gliales",
"Amacrine"];
listOrgans["oreille"] = ["Vestibule", "étrier", "Tympan", "Cochléa"];
listOrgans["tronc"]= ["Médiastin", "Thymus", "Coeur", "Plévre"];
listOrgans["abdomen"]= ["Mésentére", "épiploon", "Péritoine"];
function fOnClick(sElm) {
const idx = sElm.selectedIndex;
const listOrgIdx = sElm.options[idx].value;
const curList = listOrgans[listOrgIdx];
// listOrgans à sélectionner dans la collection élistOrgansé.
const oS = document.querySelector(".cOrg");
// le <select> de éclass=cOrgé
// N'oubliez pas le point dans .cOrg.
// Effacer la liste des options en cours dans
// le <select> cible (les supprimer toutes).
oS.options.length = 0;
// Maintenant y injecter les nouvelles options
let nvlleOption;
for (var i=0; i<curList.length; i++) {
nvlleOption = document.createElement("option");
nvlleOption.value = curList[i];
// ou
nvlleOption.textContent = curList[i];
nvlleOption.text = curList[i];
// Injecter la nouvelle option
try {
oS.add(nvlleOption); // IE
}
catch (e) {
oS.appendChild(nvlleOption); // DOM
L’élément < Select >
- 48 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
}
}
}
</script>
2ème Méthode (parmi beaucop d’autres) de gérer deux listes liées :
<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>
<select size=3 id="pv" onChange="dispSelectedItem_2()">
<option value="BC">Bas-Congo</option>
<option value="ET">Est</option>
</select>
L’élément < Select >
- 49 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
</form>
<script type="text/javascript"> "use strict";
let dispSelectedItem = s => {
let selElIdxThis = s.selectedIndex,
selValThis
= s[selElIdxThis].value,
loc;
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>
<script type="text/javascript"> "use strict";
let dispSelectedItem_2 = _ => {
let s=document.getElementById("pv"),
selElIdxThis = s.selectedIndex,
selValThis
= s[selElIdxThis].value,
loc;
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 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
23:51:57.532
test.html:38
JavaScript Tome- XXIV
Luozi se trouve dans : BC (Bas-Congo)
Cliquez maintenant sur « Goma »:
->
23:55:02.486
test.html:38
Goma se trouve dans : ET (Est)
Cliquez maintenant sur « Modu »:
->
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.
Cliquez maintenant sur « Est » dans cette liste déroulante de droite :
->
00:03:40.122
test.html:60
ET (Est)
Et enfin, cliquez sur « Bas-Congo » dans cette liste déroulante de droite :
->
00:07:43.048
test.html:60
BC (Bas-Congo)
L’addEventListener « onClick » peut aussi servir à détecter toute intrusion dans l’élément.
L’élément < Select >
- 51 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Parcours des options avec la boucle « for…in » : ne fonctionne pas bien.
<select id="selId" onclick="fsel();">
<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>
<script type="text/javascript"> "use strict";
const sel=document.getElementById('selId');
const fsel = _ => {
console.log("BEWARE, SOMEONE HAS DARED TRESPASSING");
console.log("THIS « SELECT » ELEMENT BY CLICKING.");
for(let k in sel.options) {
console.log(sel.options[k].value)
}
};
</script>
Exécution :
6 options non déclarées en trop. Préférez donc l’une des formes qui suivent :
A. Parcours des options avec la boucle « for…to » : fonctionne mieux.
<select id="selId" onclick="fsel();">
<option value=
"http://diasmath.blogg.org">
diasmath
</option>
<option value=
L’élément < Select >
- 52 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
"http://www.amessi.org/diasoluka" selected="Selected">
diasoluka
</option>
<option value=
"https://www.youtube.com/watch?v=UUlPUdTALWQ">
Video
</option>
</select>
<script type="text/javascript"> "use strict";
const sel=document.getElementById('selId');
console.log(
"sel.length =", sel.length, ", ",
"sel.options.length =", sel.options.length
);
// sel.length = 3 sel.options.length = 3
const fsel = _ => {
console.log("BEWARE, SOMEONE HAS DARED TRESPASSING");
console.log("THIS « SELECT » ELEMENT BY CLICKING.");
for(let k=0,l=sel.length ; k<l ; k++) {
console.log(sel.options[k].value)
}
};
</script>
B. Parcours des options avec la boucle « for…of » : fonctionne aussi mieux.
Vous avez aussi un petit bonus : l’affichage de l’option sélectionnée.
<select id="selId" onmouseup="fsel();">
<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
L’élément < Select >
- 53 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
</option>
</select>
<script type="text/javascript"> "use strict";
var sel=document.getElementById('selId');
const fsel = _ => {
var isl;
console.log("BEWARE, SOMEONE HAS DARED TRESPASSING");
console.log("THIS « SELECT » ELEMENT BY CLICKING.");
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>
L’élément < Select >
- 54 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
La liste complète des EventHandlers : voyez les « onMachinTruc » plus loin (page 7).
L’EventHandler bénéficie de toute la compliance de JavaScript.
Commençons par cet exemple simple :
<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>
<textarea id="txtarea" style="height:150;width:350"></textarea>
<script type="text/javascript"> "use strict";
let dispSelectedItem = _ => {
let selEl = document.getElementById("sname");
let selVal = selEl.value,
L’élément < Select >
- 55 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
selText = selEl.options[selEl.selectedIndex].text;
if(selVal!="nada") {
document.getElementById("txtarea").innerHTML +=
selText +" : "+ selVal + "\n\n"
if(selVal.startsWith("http")) window.open(selVal);
}
}
let dispSelectedItem2 = _ => {
let selEl2 = document.getElementById("sname");
let selVal2 = selEl2.options[selEl2.selectedIndex].value,
selText2 = selEl2.text;
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
»
surtout dans sa forme complète!
<script type="text/javascript"> "use strict";
let getval = sel => {
window.open(sel.value);
}
</script>
<select onchange="getval(this);">
<option value=
"http://diasmath.blogg.org">
diasmath
</option>
<option value=
"http://gha.centerblog.net/4-GHA-Nouvelle-Arme-pour-TUER-LA-MORT">
L’élément < Select >
- 56 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
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 :
19:01:26,976 http://www.amessi.org/diasoluka test.html:1:14
19:01:28,293 https://www.youtube.com/watch?v=UUlPUdTALWQ test.html:1:14
19:01:29,484 http://diasmath.blogg.org test.html:1:14
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>
L’élément < Select >
- 57 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
<option value=
"https://www.youtube.com/watch?v=UUlPUdTALWQ">
Video
</option>
</select>
Exécution :
18:54:41,162 http://gha.centerblog.net/4-GHA-Nouvelle-Arme-pour-TUER-LA-MORT test.html:1:1
18:54:44,704 http://diasmath.blogg.org test.html:1:1
18:54:46,502 https://www.youtube.com/watch?v=UUlPUdTALWQ test.html:1:1
Si on ne spécifie pas la valeur de l’attribut « value » la valeur retournée sera automatiquement celle de l’étiquette d’affichage.
Exécution : à gauche la liste déroulante, à droite l’affichage.
L’élément < Select >
- 58 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
On peut plus facilement manipuler la « value » de l’élément « select » avec « event » :
<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>
<!-- 1er MéTHODE D'AJOUT DE NVLLE OPTION -->
<script>
document.write(
`<option value = "annee" selected="selected">
${new Date().toLocaleString()}</option>`
);
</script>
</select>
<br><textarea id="idt" style="width:233;height:100"
placeholder=`Cliquez_ici_pour_afficher_l'event.`>
</textarea>
<br><button id="ida" style="width:233">AJOUT D'OPTION & l'Event</button>
<script>
let cptr=0;
document.getElementById('ida').addEventListener('click', function(e) {
const s = document.getElementById("sel");
// 2é MéTHODE D'AJOUT DE NVLLE OPTION
s.options[s.options.length] =
new Option('New Text' + ++cptr, 'new_value' + cptr);
// Fin ajout de nvlle OPTION
});
document.getElementById('idt').addEventListener('click', function(e) {
const s = document.getElementById("sel");
console.log("Current Select Options =",s.options);
L’élément < Select >
- 59 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
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);
console.log("e.x =",e.x);
}
);
</script>
L’élément < Select >
- 60 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Parcourons les différentes options.
D’abord cliquons sur « luyalu », puis ajoutons une
nouvelle option en cliquant sur le bouton « AJOUT
D’OPTIONS & l’Event », puis cliquons sur la nouvelle
option, puis cliquons sur « DIASOLUKA », puis ajoutons encore une option, puis cliquons sur cette nouvelle option, puis cliquons sur la date (option qui a été
ajoutée via le DOM), puis ajoutons encore une option
et cliquons cette nouvelle option.
Et au final nous avons ceci ci-après :
Vous voyez que nous pouvons continuer à ajouter
autant de nouvelles options et exploitables, que
nous voulons.
Cliquons maintenant la fenêtre des affichages pour
lister dans la console les attributs de l’event avec
leurs valeurs en cours.
Current Select Options =
HTMLOptionsCollection(6) [ option, option, option, option, option, option]
test.html:42:7
e = click { target: textarea#idt, buttons: 0, clientX: 120, clientY: 217,
layerX: 111, layerY: 71 }
test.html:44:7
e.target = <textarea id="idt" style="width:233;height:100"
placeholder="`Cliquez_ici_pour_afficher_l'event.`">
test.html:45:7
e.srcElement = <textarea id="idt" style="width:233;height:100"
placeholder="`Cliquez_ici_pour_afficher_l'event.`">
test.html:46:7
e.button = 0
e.buttons = 0
e.clientX = 120
e.clientY = 217
e.composed = true
L’élément < Select >
test.html:47:7
test.html:48:7
test.html:49:7
test.html:50:7
test.html:51:7
- 61 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
e.ctrlKey = false
JavaScript Tome- XXIV
test.html:52:7
e.currentTarget = <textarea id="idt" style="width:233;height:100"
placeholder="`Cliquez_ici_pour_afficher_l'event.`">
test.html:53:7
e.originalTarget = <div class="anonymous-div inherit-scroll-behavior">
test.html:54:7
e.defaultPrevented = false
test.html:55:7
e.preventDefault = function preventDefault()
test.html:56: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.isTrusted = true
e.layerX = 111
e.layerY = 71
e.metaKey = false
e.movementX = 0
e.movementY = 0
e.mozInputSource = 1
e.mozPressure = 0
e.offsetX = 111
e.offsetY = 71
test.html:60:7
test.html:61:7
test.html:62:7
test.html:63:7
test.html:64:7
test.html:65:7
test.html:66:7
test.html:67:7
test.html:68:7
test.html:69:7
e.originalTarget = <div class="anonymous-div inherit-scroll-behavior">
test.html:70:7
e.pageX = 120
e.pageY = 217
e.rangeOffset = 78
e.rangeParent = null
e.region =
e.relatedTarget = null
e.returnValue = undefined
e.screenX = 1197
e.screenY = 412
e.shiftKey = false
test.html:71:7
test.html:72:7
test.html:73:7
test.html:74:7
test.html:75:7
test.html:76:7
test.html:77:7
test.html:78:7
test.html:79:7
test.html:80:7
e.srcElement = <textarea id="idt" style="width:233;height:100"
placeholder="`Cliquez_ici_pour_afficher_l'event.`">
test.html:81:7
e.timeStamp = 1082377
e.type = click
test.html:82:7
test.html:83:7
e.view = Window file:///K:/DADET/PROGS/test.html
test.html:84:7
L’élément < Select >
- 62 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
e.which = 1
e.x = 120
JavaScript Tome- XXIV
test.html:85:7
test.html:86:7
La propriété « selectedIndex » de l’élément « select » fixe une valeur ou retourne la valeur de l’index de l’option sélectionnée, partant de 0 (zéro).
La valeur d’index -1 désélectionne toutes les options, ou alternativement indique
qu’aucune option n’est sélectionnée.
<label>VOTRE CHOIX :<br></label>
<select size="5" id="sel"
onClick="fSelectedIndex(1);"
onKeyUp="fSelectedIndex(4);">
<option
<option
<option
<option
value="nom">Diasoluka</option>
value="postnom">Luyalu</option>
value="planete" selected="selected">Terre</option>
value="etoile" onclick='fSelectedIndex(-1);'>Soleil</option>
<script>
document.write(
`<option value='annee'>${new Date().toLocaleString()}</option>`
);
</script>
</select>
<script type="text/javascript"> "use strict";
function fSelectedIndex(p=1) {
const e = document.getElementById("sel");
if(p==1){
let i = e.options[e.selectedIndex];
console.log("L'index de l'option sélectionnée est ", e.selectedIndex);
if(e.selectedIndex!=-1){
console.log("Label = ", i.text, ', value = ', i.value);
}
}
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;
let i = e.options[e.selectedIndex];
console.log("L'index actuel d'option sélectionnée = ", e.selectedIndex);
}
console.log("<RET> pour sélectionner la dernière option");
console.log("<CLICK Etoile> pour tout DÉsélectionner\n\n");
L’élément < Select >
- 63 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
}
</script>
Exécution :
Notez d’abord que l’option sélectionnée par défaut est « Planète ».
On a par la suite cliqué sur « Postnom »,
puis on a frappé sur « RETOUR »,
puis finalement on a cliqué sur « Etoile ».
23:32:53,976
23:32:53,978
23:32:53,979
23:32:53,979
L'index de l'option sélectionnée est 1
Label = Postnom , value = Luyalu
<RET> pour sélectionner la dernière option
<CLICK Etoile> pour tout DÉsélectionner
test.html:26:7
test.html:28:10
test.html:45:5
test.html:46:5
23:32:58,737
23:32:58,738
23:32:58,739
23:32:58,740
L'index actuel d'option sélectionnée = 4
Label = Cette année , value = 12/11/2018
<RET> pour sélectionner la dernière option
<CLICK Etoile> pour tout DÉsélectionner
test.html:35:7
test.html:36:7
test.html:45:5
test.html:46:5
23:33:03,608 L'index actuel d'option sélectionnée = -1
23:33:03,609 <RET> pour sélectionner la dernière option
23:33:03,609 <CLICK Etoile> pour tout DÉsélectionner
test.html:42:7
test.html:45:5
test.html:46:5
23:33:03,610 L'index de l'option sélectionnée est -1
23:33:03,611 <RET> pour sélectionner la dernière option
23:33:03,611 <CLICK Etoile> pour tout DÉsélectionner
test.html:26:7
test.html:45:5
test.html:46:5
Pour sélectionner une option, on peut utiliser au moins l’une des deux syntaxes comprimé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 »).
L’élément < Select >
- 64 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
<label>VOTRE CHOIX :<br></label>
<select size="5" id="sel">
<option
<option
<option
<option
value="nom">Diasoluka</option>
value="postnom">Luyalu</option>
value="planete" selected="selected">Terre</option>
value="etoile" onclick='fSelectedIndex(-1);'>Soleil</option>
<script>
document.write(
"<option value='annee'>"+new Date().toLocaleString()+"</option>"
);
</script>
</select>
<br><br>Avec e.selectedIndex = p-1;<br>
<input id="idi" onChange="fSelectedIndex(value , 1)">
<br><br>Avec e.options[p-1].selected = true;<br>
<input id="idi" onChange="fSelectedIndex(value , 2)">
<script type="text/javascript"> "use strict";
function fSelectedIndex(p, q) {
const e = document.getElementById("sel");
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(
"Le VRAI [0->] index actuel d'option sélectionnée = ",
e.selectedIndex
);
console.log("Label = *", i.text.toUpperCase(), '*, value = ', i.value);
console.log("<RET> pour sélectionner la dernière option");
console.log("<CLICK Etoile> pour tout DÉsélectionner\n\n");
L’élément < Select >
- 65 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
}
</script>
Exécution :
*************** AVEC « E.SELECTEDINDEX=P-1 » ***** test.html:29:9
================================================== test.html:33:9
Le VRAI [0->] index actuel d'option sélectionnée = 1 test.html:47:5
Label = * POSTNOM *, value = Luyalu test.html:48:5
<RET> pour sélectionner la dernière option test.html:50:5
<CLICK Etoile> pour tout DÉsélectionner test.html:51:5
L’élément < Select >
- 66 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
**** AVEC « E.OPTIONS[P-1].SELECTED = TRUE » ***** test.html:38:9
================================================== test.html:42:9
Le VRAI [0->] index actuel d'option sélectionnée = 4 test.html:47:5
Label = * CETTE ANNÉE *, value = 13/11/2018 test.html:48:5
<RET> pour sélectionner la dernière option test.html:50:5
<CLICK Etoile> pour tout DÉsélectionner test.html:51:5
*************** AVEC « E.SELECTEDINDEX=P-1 » ***** test.html:29:9
================================================== test.html:33:9
Le VRAI [0->] index actuel d'option sélectionnée = 0 test.html:47:5
Label = * NOM *, value = Diasoluka test.html:48:5
<RET> pour sélectionner la dernière option test.html:50:5
<CLICK Etoile> pour tout DÉsélectionner test.html:51:5
L’élément < Select >
- 67 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
*************** AVEC « E.SELECTEDINDEX=P-1 » ***** test.html:29:9
================================================== test.html:33:9
Le VRAI [0->] index actuel d'option sélectionnée = -1 test.html:47:5
TypeError: i is undefined[En savoir plus] test.html:48:5
fSelectedIndex
file:///K:/DADET/PROGS/test.html:48:5
onchange
file:///K:/DADET/PROGS/test.html:1:1
**** AVEC « E.OPTIONS[P-1].SELECTED = TRUE » ***** test.html:38:9
================================================== test.html:42:9
TypeError: e.options[(p - 1)] is undefined[En savoir plus] test.html:43:9
fSelectedIndex
file:///K:/DADET/PROGS/test.html:43:9
onchange
file:///K:/DADET/PROGS/test.html:1:1
L’élément < Select >
- 68 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
*************** AVEC « E.SELECTEDINDEX=P-1 » ***** test.html:29:9
================================================== test.html:33:9
Le VRAI [0->] index actuel d'option sélectionnée = -1 test.html:47:5
TypeError: i is undefined[En savoir plus] test.html:48:5
fSelectedIndex
file:///K:/DADET/PROGS/test.html:48:5
onchange
file:///K:/DADET/PROGS/test.html:1:1
**** AVEC « E.OPTIONS[P-1].SELECTED = TRUE » ***** test.html:38:9
================================================== test.html:42:9
TypeError: e.options[(p - 1)] is undefined[En savoir plus] test.html:43:9
fSelectedIndex
file:///K:/DADET/PROGS/test.html:43:9
onchange
file:///K:/DADET/PROGS/test.html:1:1
L’élément < Select >
- 69 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
*************** AVEC « E.SELECTEDINDEX=P-1 » ***** test.html:29:9
================================================== test.html:33:9
Le VRAI [0->] index actuel d'option sélectionnée = -1 test.html:47:5
TypeError: i is undefined[En savoir plus] test.html:48:5
fSelectedIndex
file:///K:/DADET/PROGS/test.html:48:5
onchange
file:///K:/DADET/PROGS/test.html:1:1
**** AVEC « E.OPTIONS[P-1].SELECTED = TRUE » ***** test.html:38:9
================================================== test.html:42:9
TypeError: e.options[(p - 1)] is undefined[En savoir plus] test.html:43:9
fSelectedIndex
file:///K:/DADET/PROGS/test.html:43:9
onchange
file:///K:/DADET/PROGS/test.html:1:1
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.
L’élément < Select >
- 70 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
<select class=cSel size=10>
<option value="AUR">Aura</option>
<option value="AMB">Amblyopie</option>
<option value="AMR" selected=true>Amaurose</option>
<option value="CCT">Cécité Corticale</option>
<option value="SCC">Scotome Central</option>
<option value="SCS" selected="selected">Scotome Scintillant</option>
<option value="SCP">Scotome Positif</option>
<option value="SCN">Scotome Négatif</option>
<option value="PST" selected>Post-Image</option>
<option value="MCT">Migraines Cataméniales</option>
</select>
<script type="text/javascript"> "use strict";
const s = document.querySelector(".cSel");
console.log(s.value),
console.log(
s.selectedIndex," *",
s[s.selectedIndex].value," *",
s[s.selectedIndex].textContent,
),
console.log(s.selectedOptions)
</script>
Si « select » est défini pour une multisélection (avec l’attribut « muti »), « selectedIndex » 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.
<label>VOTRE CHOIX :<br></label>
<select multiple size="5" class="cSel">
<option
<option
<option
<option
value="nom" selected="selected">Diasoluka</option>
value="postnom">Luyalu</option>
value="planete" selected="selected">Terre</option>
value="etoile">Soleil</option>
<script>
document.write(
`<option value="Annee"
selected='selected'>${new Date().toLocaleString()}</option>`
);
</script>
</select>
L’élément < Select >
- 71 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
<br>
<textarea onclick="fSelectedIndex();" id="tid"
style="height:200;width:270">
</textarea>
<script type="text/javascript"> "use strict";
function fSelectedIndex() {
const e = document.querySelector(".cSel");
const z = document.getElementById("tid");
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}\n`
}
}
z.innerHTML+="\n"
}
</script>
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.
L’élément < Select >
- 72 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Une surcharge du code ci-dessus :
On change dynamiquement le « label » ainsi que les « value » et « text » de « select »,
et on ajoute deux nouvelles « options » avec deux méthodes différentes.
<label id="lid">VOTRE CHOIX :<br>
Click pour sélectionner<br>
Click-Droit sur Soleil = Tout Désélectionner<br></label>
<select multiple size="9" id="sel"
onClick="fSelectedIndex()">
<option value="nom" selected>Diasoluka</option>
<option value="postnom">Luyalu</option>
<option value="planete" selected=true>Terre</option>
<option value="etoile" onContextMenu='fSelectedIndex(-1);'>
Soleil=Unselect All
</option>
<!—1ère MÉTHODE D'AJOUT D'OPTION -->
<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>
<script type="text/javascript"> "use strict";
function fSelectedIndex(p) {
const e = document.getElementById("sel");
const z = document.getElementById("tid");
L’élément < Select >
- 73 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
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>
<script type="text/javascript"> "use strict";
function fChange() {
const e = document.getElementById("sel");
const z = document.getElementById("tid");
const l = document.getElementById("lid");
l.innerHTML='MALADIES DES YEUX<br>'
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");
// 2? m?thode d'ajout de nvlle OPTION
s.options[s.options.length] =
new Option('New Text'+ ++cptr, 'new_value'+cptr);
// Fin ajout de nvlle OPTION
console.log("Current Select Options =",s.options);
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 -
dimanche, 26. mai 2019 (1:02 )
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 :
Vous pouvez à tout moment ajouter d’option en cliquant sur le bouton
« AJOUT D'OPTION & l'Event ». Mais travaillons avec les options préexistantes.
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 on clique le « button CHANGE » :
Puis cliquez sur l’option « CAT » et frappez sur « RETOUR ».
Puis multisélectionnez avec « CLICK-GAUCHE » tout en gardant la touche « CTRL » enfoncée. Remarquez ce qui se passe en lachant la touche « CTRL » qui effectue alors un
« OnKeyUp ».
Puis multisélectionnez encore l’option « MD » avec « CTRL-CLICK ».
Puis désélectionnez le tout en cliquant sur « HR » qui a remplacé « ETOILE ».
L’élément < Select >
- 75 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
À 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.
L’élément < Select >
- 76 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Ajout à un élément « select » d’options à partir d’un objet.
<select class="cSel"></select>
<div class="cDiv"></div>
<button class="iBut">AJOUTER L'OPTION SUIVANTE</button>
<script type="text/javascript"> "use strict";
var o = {
"RET" : 'Rétinoblastome',
"SSC" : 'Scinchisis Scintillans',
"TRM" : 'Trou Maculaire',
"MYD" : 'Myodésopsie'
};
console.dir(o);
var s = document.querySelector(".cSel");
var d = document.querySelector(".cDiv");
var b = document.querySelector(".iBut");
let i=0, addflag=0;
let kv = Object.entries(o);
let faddopt = _ => {
if(kv[i]!=undefined) {
if (!addflag) {
console.log(kv[i][0], kv[i][1]);
s.options[s.options.length] =
L’élément < Select >
- 77 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
new Option(kv[i][0], kv[i++][1]);
s.size = s.options.length;
s.selectedIndex = s.options.length - 1;
}
}
else {
if(!addflag){
addflag=1;
b.innerHTML = "DÉTRUIRE TOUTES LES OPTIONS";
console.log("=".repeat(35));
}
else {
/////////// Supprimer toutes les options en cours
/**/
while (s.options.length > 0) {
/**/
s.remove(0);
/**/
}
// ou
s.options.length = null;
// ou
s.options.length = undefined;
// ou
s.options.length = NaN;
// ou
s.options.length = "";
// ou
s.options.length = 0;
/////////// Fin Suppression toutes les options en cours
b.innerHTML = "AJOUTER DE NOUVEAU L'OPTION SUIVANTE";
addflag=0, i=0;
}
}
}
let fdisp = _ => {
d.innerHTML+=s[s.selectedIndex].value +
s[s.selectedIndex].text+"<br>";
}
b.addEventListener("click",faddopt,false);
s.addEventListener("click",fdisp,false);
</script>
Cliquez sur le bouton « AJOUTER L’OPTION SUIVANTE » 4 fois :
Cliquez encore sur ce même bouton :
L’élément < Select >
- 78 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Cliquez de nouveau ce bouton : La liste s’efface, et on repart de zéro.
L’élément < Select >
- 79 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Jongler avec les « value » et « text » des « options » d’un élément « select » :
Avec « Object . entries » et « Object . values » :
<select id="iSel" size="3">
<option value="one">Un</option>
<option value="two">Deux</option>
<option value="three">Trois</option>
</select>
<script type="text/javascript"> "use strict";
const i=document.getElementById("iSel");
for(let k=0;k<i.length;k++) {
if(k == i.selectedIndex) console.log("Selected ".repeat(3));
console.log(`${Object.entries(i.options)[k][1].value}`+
` => ` +
`${Object.entries(i.options)[k][1].innerHTML}`);
console.log(Object.values(i.options)[k].value ,
" => ",
Object.values(i.options)[k].innerHTML);
console.log("=".repeat(25));
}
</script>
Et Encore :
<select class="cS" onChange="fSel2(this.value);">
<option value="0">Sélectionner</option>
<option value="1">Un</option>
<option value="2" selected>Deux</option>
<option value="3">Trois</option>
</select>
<select id="iS1" onChange =
"fSel(options[this.selectedIndex].value);">
<option value="0">Sélectionner</option>
<option value="1">Un</option>
<option value="2" selected>Deux</option>
<option value="3">Trois</option>
</select><br>
<select id="iS2" onChange =
L’élément < Select >
- 80 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
"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>
<select id="iS3" onChange =
"fSel3(options[this.selectedIndex].textContent);">
<option value="0">Sélectionner</option>
<option value="1">Un</option>
<option value="2" selected>Deux</option>
<option value="3">Trois</option>
</select>
<select id="iS4" onChange =
"fSel3(options[this.selectedIndex].label);">
<option value="0">Sélectionner</option>
<option value="1">Un</option>
<option value="2" selected>Deux</option>
<option value="3">Trois</option>
</select>
<select id="iS4" onChange =
"fSel3(options[this.selectedIndex].innerHTML);">
<option value="0">Sélectionner</option>
<option value="1">Un</option>
<option value="2" selected>Deux</option>
<option value="3">Trois</option>
</select>
<script type="text/javascript"> "use strict";
const s=document.querySelector(".cS");
// options[this.selectedIndex].value
let fSel = (sIdx) => console.log(sIdx,
s.options[sIdx].text,
s.options[sIdx].textContent, s.options[sIdx].label);
let fSel2= (sIdx) => { // this.value
console.log(
sIdx, s.options[sIdx].text,
s.options[sIdx].textContent,
s.options[sIdx].label , o[sIdx].innerHTML);
}
// options[this.selectedIndex].text
// options[this.selectedIndex].textContent
// options[this.selectedIndex].label
// options[this.selectedIndex].innerHTML
let fSel3= (sIdx) => {
console.log(sIdx);
}
</script> <!-- fSel -->
<script type="text/javascript"> "use strict";
const x=document.querySelector(".cS"),
o=x.options, i=x.selectedIndex;
console.log(o[i].value,
o[i].text , o[i].textContent , o[i].label , o[i].innerHTML);
</script> <!-- .cS" -->
L’élément < Select >
- 81 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Au chargement :
Changeons les sélections :
LAPAROTOMISONS L’ÉLÉMENT « HTMLSelectElement » à la console de Firefox :
Pour exploiter au mieux et à fond cet élément HTML/DOM comme tout autre objet, il convient 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 HTMLSelectElement, la plupart d’entre elles sont aussi valables pour d’autres objets :
Développement de function() ci-dessus
(dans le navigateur Yandex Version 18.11.0.2022 beta) :
Object.getOwnPropertyDescriptors(HTMLSelectElement)
1. {length: {…}, name: {…}, arguments: {…}, caller: {…}, prototype: {…}}
1.
2.
3.
4.
5.
arguments: {value: null, writable: false, enumerable: false, configurable: false}
caller: {value: null, writable: false, enumerable: false, configurable: false}
length: {value: 0, writable: false, enumerable: false, configurable: true}
name: {value: "HTMLSelectElement", writable: false, enumerable: false, configurable: true}
prototype: {value: HTMLSelectElement, writable: false, enumerable: false, configurable: false}
6. __proto__: Object
L’élément < Select >
- 82 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Prototype de HTMLSelectElement avec Firefox :
« options », « selectedIndex » et « value » sont les attributs (propriétés) les plus utilisés.
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(), …
}
Prototype du constructeur de HTMLSelectElement avec Firefox :
« options », « selectedIndex » et « value » sont les attributs (propriétés) les plus utilisés.
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
L’élément < Select >
- 83 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
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(), …
}
Symbol(Symbol.hasInstance): function Symbol.hasInstance()
<prototype>: function ()
Prototype du prototype du constructeur de HTMLSelectElement avec Firefox :
<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
onabort: Getter & Setter
onanimationcancel: Getter & Setter
onanimationend: Getter & Setter
onanimationiteration: Getter & Setter
onanimationstart: Getter & Setter
onauxclick: Getter & Setter
onblur: Getter & Setter
L’élément < Select >
- 84 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
oncanplay: Getter & Setter
oncanplaythrough: Getter & Setter
onchange: Getter & Setter
onclick: Getter & Setter
onclose: Getter & Setter
oncontextmenu: Getter & Setter
oncopy: Getter & Setter
oncut: Getter & Setter
ondblclick: Getter & Setter
ondrag: Getter & Setter
ondragend: Getter & Setter
ondragenter: Getter & Setter
ondragexit: Getter & Setter
ondragleave: Getter & Setter
ondragover: Getter & Setter
ondragstart: Getter & Setter
ondrop: Getter & Setter
ondurationchange: Getter & Setter
onemptied: Getter & Setter
onended: Getter & Setter
onerror: Getter & Setter
onfocus: Getter & Setter
ongotpointercapture: Getter & Setter
oninput: Getter & Setter
oninvalid: Getter & Setter
onkeydown: Getter & Setter
onkeypress: Getter & Setter
onkeyup: Getter & Setter
onload: Getter & Setter
onloadeddata: Getter & Setter
onloadedmetadata: Getter & Setter
onloadend: Getter & Setter
onloadstart: Getter & Setter
onlostpointercapture: Getter & Setter
onmousedown: Getter & Setter
onmouseenter: Getter & Setter
onmouseleave: Getter & Setter
onmousemove: Getter & Setter
onmouseout: Getter & Setter
onmouseover: Getter & Setter
onmouseup: Getter & Setter
onmozfullscreenchange: Getter & Setter
onmozfullscreenerror: Getter & Setter
onpaste: Getter & Setter
onpause: Getter & Setter
onplay: Getter & Setter
onplaying: Getter & Setter
onpointercancel: Getter & Setter
onpointerdown: Getter & Setter
onpointerenter: Getter & Setter
onpointerleave: Getter & Setter
onpointermove: Getter & Setter
onpointerout: Getter & Setter
onpointerover: Getter & Setter
onpointerup: Getter & Setter
L’élément < Select >
- 85 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
onprogress: Getter & Setter
onratechange: Getter & Setter
onreset: Getter & Setter
onresize: Getter & Setter
onscroll: Getter & Setter
onseeked: Getter & Setter
onseeking: Getter & Setter
onselect: Getter & Setter
onselectstart: Getter & Setter
onshow: Getter & Setter
onstalled: Getter & Setter
onsubmit: Getter & Setter
onsuspend: Getter & Setter
ontimeupdate: Getter & Setter
ontoggle: Getter & Setter
ontransitioncancel: Getter & Setter
ontransitionend: Getter & Setter
ontransitionrun: Getter & Setter
ontransitionstart: Getter & Setter
onvolumechange: Getter & Setter
onwaiting: Getter & Setter
onwebkitanimationend: Getter & Setter
onwebkitanimationiteration: Getter & Setter
onwebkitanimationstart: Getter & Setter
onwebkittransitionend: Getter & Setter
onwheel: Getter & Setter
spellcheck: Getter & Setter
style: Getter & Setter
tabIndex: Getter & Setter
title: Getter & Setter
<prototype>: ElementPrototype {
getAttributeNames: getAttributeNames(),
getAttribute: getAttribute(),
getAttributeNS: getAttributeNS(), …
<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 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
getAttributeNames: function getAttributeNames()
getAttributeNode: function getAttributeNode()
getAttributeNodeNS: function getAttributeNodeNS()
getBoundingClientRect: function getBoundingClientRect()
getClientRects: function getClientRects()
getElementsByClassName: function getElementsByClassName()
getElementsByTagName: function getElementsByTagName()
getElementsByTagNameNS: function getElementsByTagNameNS()
hasAttribute: function hasAttribute()
hasAttributeNS: function hasAttributeNS()
hasAttributes: function hasAttributes()
hasPointerCapture: function hasPointerCapture()
id: Getter & Setter
innerHTML: Getter & Setter
insertAdjacentElement: function insertAdjacentElement()
insertAdjacentHTML: function insertAdjacentHTML()
insertAdjacentText: function insertAdjacentText()
lastElementChild: Getter
localName: Getter
matches: function matches()
mozMatchesSelector: function mozMatchesSelector()
mozRequestFullScreen: function mozRequestFullScreen()
namespaceURI: Getter
nextElementSibling: Getter
outerHTML: Getter & Setter
prefix: Getter
prepend: function prepend()
previousElementSibling: Getter
querySelector: function querySelector()
querySelectorAll: function querySelectorAll()
releaseCapture: function releaseCapture()
releasePointerCapture: function releasePointerCapture()
remove: function remove()
removeAttribute: function removeAttribute()
removeAttributeNS: function removeAttributeNS()
removeAttributeNode: function removeAttributeNode()
replaceWith: function replaceWith()
requestPointerLock: function requestPointerLock()
scroll: function scroll()
scrollBy: function scrollBy()
scrollHeight: Getter
scrollIntoView: function scrollIntoView()
scrollLeft: Getter & Setter
scrollLeftMax: Getter
scrollTo: function scrollTo()
scrollTop: Getter & Setter
scrollTopMax: Getter
scrollWidth: Getter
setAttribute: function setAttribute()
setAttributeNS: function setAttributeNS()
setAttributeNode: function setAttributeNode()
setAttributeNodeNS: function setAttributeNodeNS()
setCapture: function setCapture()
setPointerCapture: function setPointerCapture()
tagName: Getter
L’élément < Select >
- 87 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
webkitMatchesSelector: function webkitMatchesSelector()
Symbol(Symbol.unscopables): Object {
slot: true, before: true, after: true, …
Symbol(Symbol.unscopables): {…}
after: true
append: true
before: true
prepend: true
remove: true
replaceWith: true
slot: true
}
<prototype>: NodePrototype {
getRootNode: getRootNode(), hasChildNodes: hasChildNodes(),
insertBefore: insertBefore(), …
<prototype>: NodePrototype
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
appendChild: function appendChild()
baseURI: Getter
childNodes: Getter
cloneNode: function cloneNode()
compareDocumentPosition: function compareDocumentPosition()
constructor: function ()
contains: function contains()
firstChild: Getter
getRootNode: function getRootNode()
hasChildNodes: function hasChildNodes()
insertBefore: function insertBefore()
isConnected: Getter
isDefaultNamespace: function isDefaultNamespace()
isEqualNode: function isEqualNode()
isSameNode: function isSameNode()
lastChild: Getter
lookupNamespaceURI: function lookupNamespaceURI()
lookupPrefix: function lookupPrefix()
nextSibling: Getter
nodeName: Getter
nodeType: Getter
L’élément < Select >
- 88 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
nodeValue: Getter & Setter
normalize: function normalize()
ownerDocument: Getter
parentElement: Getter
parentNode: Getter
previousSibling: Getter
removeChild: function removeChild()
replaceChild: function replaceChild()
textContent: Getter & Setter
<prototype>: EventTargetPrototype {
addEventListener: addEventListener(),
removeEventListener: removeEventListener(),
dispatchEvent: dispatchEvent(), …
}
}
}
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 -
dimanche, 26. mai 2019 (1:02 )
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 du prototype de HTMLSelectElement :
<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 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
getRootNode: getRootNode(), hasChildNodes: hasChildNodes(),
insertBefore: insertBefore(), …
}
Symbol(Symbol.hasInstance): function Symbol.hasInstance()
<prototype>: function ()
L’élément < Select >
- 91 / 93 -
dimanche, 26. mai 2019 (1:02 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome- XXIV
Kinshasa, le 26 mai 2019 (1:02 ).
Mots-clés :
select, option, selectedIndex, selectedOptions, querySelector, getElementById, getElementsByName,
HTMLSelectElement, HTMLOptionElement, HTMLOptionsCollection, event, EventTarget, EventSource, Object.getOwnPropertyDescriptors, ECMASCRIPT, JAVASCRIPT, onClick, onChange, onMouseOut, onKeyUp, onWheel, onContextMenu, textContent, text, innerHTML, innerText, outerHTML
DIASOLUKA Nz. Luyalu
Docteur en Médecine, Chirurgie & Accouchements (1977),
CNOM : 0866 - Spécialiste en ophtalmologie (1980)
Études humanités : Scientifique - Mathématiques & Physique.
Informaticien-amateur, Programmeur et WebMaster.
Chercheur indépendant, autonome et autofinancé, bénévole, sans aucun conflit
d’intérêt ou liens d'intérêts ou contrainte promotionnelle avec qui qu’il soit ou
quelqu’organisme ou institution / organisation que ce soit, étatique, paraétatique
ou privé, industriel ou commercial en relation avec le sujet présenté.
+243 - 851278216 - 899508675 - 991239212 - 902263541 - 813572818
[email protected]
Autre Lecture :
https://www.scribd.com/document/374738470/Le-Plus-Grand-Secret-de-La-Creation
D’autres publications pouvant aussi intéresser :
• https://www.scribd.com/document/377036251/Le-Dosage-Des-Medicamentsen-Cac-Cas
• https://www.scribd.com/document/377035454/Le-Hasard-Des-ThermometresNon-contact-a-Infrarouge
• https://www.scribd.com/document/376222482/Petite-Introduction-AuxFonctions-JavaScript
• https://www.scribd.com/document/376221919/La-Foi-en-Jesus-Christ-PourQuoi-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 -
dimanche, 26. mai 2019 (1:02 )
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-ObjetsJavaScript
• https://www.scribd.com/document/374788758/Iterations-en-JavaScript
• https://www.scribd.com/document/374738470/Le-Plus-Grand-Secret-de-LaCreation
• https://www.scribd.com/document/374597969/Nouvelle-Formule-d-IMCindice-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-DesReflexes-Pupillomoteurs
• https://www.scribd.com/document/321168468/Renseignements-Id-etAnthropometriques
• https://www.scribd.com/document/320856721/Emission-31-Jul-2016
• https://www.scribd.com/document/318182982/Complication-Visuelle-duTraitement-de-La-Malaria
• https://www.scribd.com/document/318180637/Rapport-Entre-Oxymetrie-EtType-Respiration
• https://www.scribd.com/document/315746265/Classification-DesMedicaments
• https://www.scribd.com/document/315745909/Incongruences-Heresies-etHeterodoxies-de-la-Notion-de-Laboratoire
• https://www.scribd.com/document/315745725/Rapport-Entre-Oxymetrie-EtType-Respiration
L’élément < Select >
- 93 / 93 -
dimanche, 26. mai 2019 (1:02 )
Téléchargement