gk: ComboBox (und zwar eine richtige!) in HTML

Beitrag lesen

in HTML gibt es keine ComboBox, allerdings kann man mittels JavaScript aus einem Eingabefeld und einer Dropdownliste eine
basteln:

<html>
 <head>

<script type="text/javascript">

// Aktualisiert das Eingabefeld mit dem ausgewählten Listeneintrag

function updateInput(sourceobj,targetId){
  document.getElementById(targetId).value=sourceobj.options[sourceobj.selectedIndex].value;
 }

// Fügt den Inhalt des Eingabefeldes als Option zur Liste hinzu

function addOption(sourceobj,targetId){
  var name=sourceobj.value;
  var tobj=document.getElementById(targetId);
  var opts=tobj.options;
  var i=0;
  while(i<opts.length && opts[i].value!=name){opts[i].selected="";i++;}
  if(i==opts.length) {
   newopt=document.createElement('option');
   newopt.value=name;
   newopt.innerHTML=name;
   tobj.appendChild(newopt);
  }
  opts.selectedIndex=i;
  opts[i].setAttribute('selected','selected');
 }
  </script>
 </head>

<body>
  <div>

<input type="text" id="fontname" value="Tahoma" onChange="addOption(this,'fontlist')"><br>
   <select id="fontlist"  onChange="updateInput(this,'fontname');">
      <option value="Arial Unicode MS">Arial Unicode MS</option>
      <option value="Bitstream Cyberbit">Bitstream Cyberbit</option>
      <option value="Code2000">Code2000</option>
      <option value="Lucida Sans Unicode">Lucida Sans Unicode</option>
      <option value="Lucida Sans Typewriter">Lucida Sans Typewriter</option>
      <option value="MS Sans Serif">MS Sans Serif</option>
      <option value="Tahoma" selected="selected">Tahoma</option>
      <option value="Titus Cyberbit Basic">Titus Cyberbit Basic</option>
      <option value="Times New Roman">Times New Roman</option>
   </select>

</div>
 </body>
</html>

Bemerkung: sowohl das input-Element, als auch das select-Element müssen ein eindeutiges "id" Attribut haben.
<input id="inputname" onChange="addOption(this,selectname)">
<select id="selectname" onChange="updateInput(this,inputname)">