Filtrera listbox
Hej,
Så här vill jag göra:
Först har jag en textbox(singleline).
Under den har jag en listbox med ett par hundra namn.
Skriver jag tex "And" i textboxen vill jag filtrera listboxen på alla namn som börjar på "And".
Så fort jag lägger till/tar bort en bokstav skall listboxen filtreras om.
Jag vill inte göra postback mellan varje bokstav.
Någon som vet hur man kan göra detta, eller någonstans man kan läsa om det?
Först tänkte jag Ajax, men det kanske fungerar med javascript? Om Ajax, finns det sådana här exempel någonstans? Kan inte Ajax över huvud taget....
Eller om det är javascript, kan någon ge något exempel?
Det kanske finns färdiga komponenter för detta?
Tackar på förhand!!
/Jocke
Svara
Sv: Filtrera listbox
Jag googlade lite och hittade denna koden.
Den funkar exakt som jag vill, förutom en sak. den verkar bara funka med numeriska tal.
Jag vill ju att den ska ta bokstäver.
Jag är för dålig på javascript för att se vad jag ska ändra.
Någon som vet hur man modifiera för att den ska funka med bokstäver?
Här är koden:
<code>
<html>
<head>
<title>Filter script</title>
<script>
allNumbers = "1,12,13,14,12332,12321,789789,23434,123,9841,123,3245,1243,1223,23,4234,1".split(',')
allNumbers.sort();
function showAll(theForm) {
theForm.sel.options.length=0;
for (i=0;i<allNumbers.length;i++) {
theForm.sel.options.length++
theForm.sel.options[theForm.sel.options.length-1]= new Option(allNumbers[i],allNumbers[i]);
}
}
saveVal="";
function getSel() {
var theForm=document.myForm;
var val = theForm.myField.value;
if (val == saveVal) return;
saveVal=val;
theForm.sel.options.length=0;
for (i=0;i<allNumbers.length;i++) {
if (allNumbers[i].indexOf(val)==0) {
theForm.sel.options.length++
theForm.sel.options[theForm.sel.options.length-1]= new Option(allNumbers[i],allNumbers[i]);
}
}
}
function initPage() {
showAll(document.myForm);
document.myForm.myField.focus()
saveVal=document.myForm.myField.value;
setInterval('getSel()',10)
}
</script>
</head>
<body onLoad="initPage()">
<form name="myForm">
<input type="text" name="myField" value="">
<br>
<select name="sel" multiple size="10" style="width:150px;">
<option value="">-------------
<option value="">-------------
<option value="">-------------
<option value="">-------------
</select>
</form>
</body>
</html>
</code>
Svara
Sv:Filtrera listbox
Ingen som vet?
/Jocke
P.S. Inser nu att detta naturligtvis borde ligga under "Javascript" istället, sorry!
Svara
Sv: Filtrera listbox
Det ser ut som att den ska fungera med bokstäver... hur yttrar sig felet?
Svara
Sv:Filtrera listbox
Ja du....nu funkade det....
Jag måste gjort något konstigt när jag ändrade i strängen(allNumbers).
Ska inte störa mer.....:)
Tack!
/Jocke
Svara