Fandt lige en løsning...
de nysgerrige kan tage et kig her: http://www.phoenixv.dk/arkiv.html >> Formularer >> Dynamisk select-boks
Ved ikk om du så stadigvæk er interreseret, men jeg har en liggende, som jeg selv bruger
Koden er:
function match(matcher, selector) {
var prop = "text"; // Vi henter tekst værdierne, sæt til value, hvis du vil tjekke value værdierne
// Tjek værdierne i NN4
if(document.layers) {
var search = document.layers[matcher].value.toLowerCase(); // Vi henter teksten i tekst boksen, og laver den lowercase, så den ikke er case sensitive.
// Gennemløb alle options i select tag'en, for at finde en match
for(var i = 0; i < document.layers[selector].options.length; i++) {
option = document.layers[selector].options[ i][prop].toLowerCase(); // Hent teksten i option nummer "i", og gør den lowercase (Så vi ikke har nogen case sensitivity).
// Sammenlign svarerne
if(option.indexOf(search) == 0) {
document.layers[selector].selectedIndex = i; // Marker den option, som svarer til søge ordet
break; // Hop ud af for loopet, da vi allerede har en match nu
}
}
// Tjek værdierne i IE4, jeg kommenterer ikke igen, da koden er den samme som før
} else if(document.all) {
var search = document.all[matcher].value.toLowerCase();
for(var i = 0; i < document.all[selector].options.length; i++) {
var option = document.all[selector].options[ i][prop].toLowerCase();
if(option.indexOf(search) == 0) {
document.all[selector].selectedIndex = i;
break;
}
}
// Tjek værdierne i IE5+, NN6, Opera, Mozilla, mm.
} else {
var search = document.getElementById(matcher).value.toLowerCase();
for(var i = 0; i < document.getElementById(selector).options.length; i++) {
var option = document.getElementById(selector).options[ i][prop].toLowerCase();
if(option.indexOf(search) == 0) {
document.getElementById(selector).selectedIndex = i;
break;
}
}
}
}
du bruger den på følgende måde:
<input type="text" id="Matcher" onkeyup="javascript:match('Matcher', 'Selector');">
<select id="Selector">
DINE OPTIONS
</select>
Du kan evt. ændre deres id'er, men så skal du også huske at ændre onkeyup="javascript:match('Matcher', 'Selector');" til onkeyup="javascript:match('TEKSTBOKSENS_ID', 'SELECTTAGETS_ID');"
Denne funktion burde være kompatibel i næsten alle browsere som findes i dag (med mindre den faktisk er til alle
), men jeg har kun selv testet den i IE6...
- Mads
[Redigeret d. 21/12-04 13:51:56 af Mads]