1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| <!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>multi selects</title>
</head>
<body>
<select id="marques-select" ></select>
<select id="types-select" ></select>
<select id="modeles-select"></select>
<select id="cables-select"></select>
<select id="programmes-select"></select>
<select id="facades-select"></select>
<script>
const
Base_Sel = [
{ DOMelm : document.querySelector('#marques-select'), chxZero :'--- Choisissez une marque ---', init:'0-marques', action :1 }
, { DOMelm : document.querySelector('#types-select'), chxZero :'--- Types ---', init:'', action :2 }
, { DOMelm : document.querySelector('#modeles-select'), chxZero :'--- Modèles ---', init:'', action :3 }
, { DOMelm : document.querySelector('#cables-select'), chxZero :'--- Cables ---', init:'', action :4 }
, { DOMelm : document.querySelector('#programmes-select'), chxZero :'--- Programmes ---', init:'', action :5 }
, { DOMelm : document.querySelector('#facades-select'), chxZero :'--- Facades ---', init:'', action :-1 }
],
Content_Sets = {
'0-marques': [ ['Motorola','moto'], ['Kenwood','ken'], ['Icom','ico'], ['Vertex','ver'], ['Hytera','hyt'] ],
'1-moto' : [ ['Mobiles','mm'], ['Portatifs','mp'], ['Répéteurs','mr'], ['Micro','mmic'] ],
'1-ken' : [ ['Mobiles','km'], ['Portatifs','kp'], ['Répéteurs','kr'], ['Micro','kmic'] ],
'1-ico' : [ ['Mobiles','im'], ['Portatifs','ip'], ['Répéteurs','ir'] ],
'1-ver' : [ ['Mobiles','vm'], ['Portatifs','vp'], ['Répéteurs','vr'] ],
'1-hyt' : [ ['Mobiles','hm'], ['Portatifs','hp'], ['Répéteurs','hr'] ],
'2-mm' : [ ['CDM 1250','cdm1250'], ['CM 200','cm200'], ['CM 200d','cm200d'], ['M 1225','m1225'] ]
// à continuer ....
};
// initializzationne des selects...
// - - - - - - - - - - - - - - - - - - - -
Base_Sel.forEach( (refBaseSel , idx)=> {
initOptions ( idx, refBaseSel.init );
refBaseSel.DOMelm.dataset.refBase = idx.toString();
refBaseSel.DOMelm.onchange = SelectChanged;
})
function initOptions ( BS_idx, SetRef )
{
let
theSelect = Base_Sel[BS_idx].DOMelm,
initLine = Base_Sel[BS_idx].chxZero
;
theSelect.innerHTML = null;
theSelect[0] = new Option(initLine,'');
theSelect.selectedIndex = 0;
theSelect[0].disabled = true;
if ( '' != SetRef )
{
Content_Sets[SetRef].forEach( function(pair,item)
{
theSelect[(item+1)] = new Option(pair[0],pair[1]);
})
}
}
function SelectChanged(e) {
let
ref = parseInt(this.dataset.refBase),
SelId = Base_Sel[ref].action
;
initOptions(SelId, (SelId+'-'+this.value) );
}
/* <select id="facades-select" onChange="document.getElementById('facadesimg').src=this.value" */
</script>
</body>
</html> |
Partager