Combobox in CSS en JavaScript

Hier onder staat een zg. Combobox. Dat is een combinatie van een listbox en een tekstveld. In dit voorbeeld kun je een van de voorgeprogrammeerde kleuren invullen, maar je kunt ook zelf een (willekeurige!) tekst invoeren.

Kies een kleur uit de lijst of typ er een in; klik vervolgens op de knop.

 

Een combobox lijkt veel op een listbox. Ze hebben allebei een tekstveld en een "pijltje naar beneden". Als je op dat pijltje klikt verschijnt er een menu waar je een keuze uit kunt maken. De keuze verschijnt in het tekstveld.
Het verschil is dat je bij een listbox niet zelf een waarde kunt invullen. Je bent gebonden aan de keuzes die de listbox je biedt. Bij een combobox kun je invullen wat je wilt. Een combobox heeft dus meer mogelijkheden.

in de specificatie van HTML ontbreekt de combobox. Dat is vreemd, omdat in elke moderne programmeertaal de combobox gewoon beschikbaar is. Als je een een combobox nodig hebt op je website moet je hem dus zelf maken.

Op deze pagina wordt een script besproken dat ik zelf heb ontwikkeld, waarmee je je eigen comboboxen kunt maken. De code van het voorbeeld staat onderaan deze pagina. Je kunt hem downloaden om zelf te gebruiken.

Inbouwen in je eigen site

Gebruik:

De code ziet er als volgt uit:
 
(Zet dit in de <HEAD>).

<link rel="stylesheet" href="combobox.css">
<script src="combobox.js"></script>
<script>
// Dit is alleen nodig in het voorbeeld: Afhandeling van de button
function LaatZien() {
  var aa = document.getElementById('CbBt_1').value
  if ( aa == "") {
    window.alert('U heeft nog geen keus gemaakt!')
  } else {
    window.alert('U heeft gekozen voor\n\n'+aa+'.')   }
}
</script>
(Zet dit in de <BODY>, op de plaats waar de combobox moet verschijnen).
<form id="CbB_1_placeHolder">
<table cellspacing="0" cellpadding="0" border="0"><tr>
  <td><input type="text" id="CbBt_1" class="comboText_1" value=""
    onclick="ShowBox(this.id)" onkeyup="HideBox(this.id)"></td>
  <td><img src="combobox1.gif"
    onmouseover="SwapImage(this.id,'combobox2.gif')"
     onmouseout="SwapImage(this.id,'combobox1.gif')"
    id="CbBi_1" class="comboImg"
    onclick="ShowBox(this.id)"></td>
</tr></table>
 
<table cellspacing="0" cellpadding="0" border="0" id="CbBm_1" style="display:none">
  <tr><td onclick="DoBox(this.id)" id="CbB_1#1">Rood</td></tr>
  <tr><td onclick="DoBox(this.id)" id="CbB_1#2">Oranje</td></tr>
  <tr><td onclick="DoBox(this.id)" id="CbB_1#3">Geel</td></tr>
  <tr><td onclick="DoBox(this.id)" id="CbB_1#4">Groen</td></tr>
  <tr><td onclick="DoBox(this.id)" id="CbB_1#5">Blauw</td></tr>
  <tr><td onclick="DoBox(this.id)" id="CbB_1#6">Violet</td></tr>
</table></form>
 
<div align="center"><button type="button" onclick="LaatZien()">Laat zien wat ik gekozen heb</button></div>

Downloaden:
 
Druk op de knop: Download deze code  File: voorb321.zip, 2836 bytes.

 
terug

html-321; Laatste wijziging: 21 mei 2020