Hej,
Jag har en multiple select box som innehåller en massa rader. Undrar om det är någon som känner till något script som filterar innehållet i select boxen dynamiskt.
Tex om jag skriver in "att" i ett input fält så ersätts innehållet i selectboxen och enbart alla rader som innehåller "att" visas. Detta skulle vara guld att ha men jag vet inte riktigt var jag ska börja.
:stud
Efter att ha testat ett par timmar så har jag kommit fram till att följande fungerar ganska bra.
<form name="myform1">
<input type="text" onKeyUp="funReplaceContent(this.value)"><p>
Master<br>
<select name="master" MULTIPLE SIZE="10">
<option value="Blue">Blue</option>
<option value="News">News</option>
<option value="Webmaster">Webmaster</option>
<option value="Tech">Tech</option>
<option value="Tech2">Tech2</option>
<option value="Tech3">Tech3</option>
</select>
</form>
<!-- TEMP FORMULÄRET -->
<form name="hiddenForm" style="visibility:hidden;"><select name="temp" size="0"> </select></form>
<script language="JavaScript">
//////////////////////////////////////////////////////////////////////////////////////////////////////
// SKAPAT AV MATTIAS NORDIN. KÄLLA: [url]http://www.javascriptkit.com/javatutors/selectcontent.shtml[/url] //
//////////////////////////////////////////////////////////////////////////////////////////////////////
//KOPIERA INNEHÅLLET TILL TEMP...
funCopySelectBoxContent();
//FILTER FUNKTIONEN...
function funReplaceContent(varKeepThisString){
var frmMaster = document.myform1.master
var frmHidden = document.hiddenForm.temp
//SÄTT INKOMMANDE TILL VERSALER...
varKeepThisString = varKeepThisString.toLowerCase();
//TÖM MASTER LISTAN...
frmMaster.options.length=0
//HUR MÅNGA OPTION VALUES FINNS NU I HIDDEN...
varNumberOfSelectBoxOptions = frmHidden.options.length
//LOOPA IGENOM ALLA OPTIONS...
for (i=0; i < varNumberOfSelectBoxOptions; i++){
//HÄMTA OPTION VALUE RAD FÖR RAD...
varOptionValue = frmHidden.options[i].value.toLowerCase();
//TESTA OM SÖKNING TRÄFFAR...
if (varOptionValue.indexOf(varKeepThisString) == -1){
//...
} else {
frmMaster.options[frmMaster.options.length] = new Option(varOptionValue, varOptionValue, false, false)
}
}
}
//FUNCTION FÖR ATT KOPIERA TILL HIDDEN TEMP...
function funCopySelectBoxContent(){
var frmMaster = document.myform1.master
var frmHidden = document.hiddenForm.temp
varNumberOfSelectBoxOptions = frmMaster.options.length
for (i=0; i < varNumberOfSelectBoxOptions; i++){
varOptionValue = frmMaster.options[i].value;
frmHidden.options[frmHidden.options.length] = new Option(varOptionValue, varOptionValue, false, false)
}
}
</script>
:bire