Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
22
rated 0 times [  27] [ 5]  / answers: 1 / hits: 45839  / 12 Years ago, thu, may 31, 2012, 12:00:00

I am trying to make auto complete to select option according to input from the user



something like



  <input type=text onkeyup=findit()>

<select id=sel>
<option value=s0001>Adams</option>
<option value=s0002>Alder</option>
.
.
.
<select>


I found this code 'but it only work on one select in the page( I need multi select)



<html>
<head>

<script type=text/javascript>


//initialize some global variables
var list = null;
function fillit(sel,fld) {


var field = document.getElementById(entry);
var selobj = document.getElementById(sel);
if(!list)
{
var len = selobj.options.length;
field.value = ;
list = new Array();
for(var i = 0;i < len;i++)
{
list[i] = new Object();
list[i][text] = selobj.options[i].text;
list[i][value] = selobj.options[i].value;
}
}
else
{
var op = document.createElement(option);
var tmp = null;
for(var i = 0;i < list.length;i++)
{
tmp = op.cloneNode(true);
tmp.appendChild(document.createTextNode(list[i][text]));
tmp.setAttribute(value,list[i][value]);
selobj.appendChild(tmp)/*;*/
}
}
}


function findIt(sel,field)
{
var selobj = document.getElementById(sel);
var d = document.getElementById(display);
var len = list.length;
if(field.value.length > 1)
{
if(!list)
{
fillit(sel,field);
}
var op = document.createElement(option);
selobj.options.length = 1
var reg = new RegExp(field.value,i);
var tmp = null;
var count = 0;
var msg = ;
for(var i = 0;i < len;i++)
{
if(reg.test(list[i].text))
{
// d.childNodes[0].nodeValue = msg;
tmp = op.cloneNode(true);
tmp.setAttribute(value,list[i].value);
tmp.appendChild(document.createTextNode(list[i].text));
selobj.appendChild(tmp);
}
}
}
else if(list && len > selobj.options.length)
{
selobj.selectedIndex = 0;
fillit(sel,field);
}
}




</script>


</head>
<body onLoad=fillit(sel,entry)>
<div>Enter the first three letters of a street and select a match from the menu.</div>
<form>
Street
<input type=text name=Street id=entry onKeyUp=findIt(sel,this)><br>
<select id=sel>
<option value=s0001>Adams</option>
<option value=s0002>Alder</option>
<option value=s0003>bol</option>
<option value=s0004>col</option>
<option value=s0005>dol</option>
<option value=s0007>Cooper</option>
<!--and so on and so forth-->
</select>
</form>
</body>


Any Ideas How to make it work on multi select on the page?



Thanks



Baaroz


More From » input

 Answers
28

Not sure if this would work for you, but chosen.js has a really nice autocomple multi select



http://harvesthq.github.com/chosen/


[#85245] Wednesday, May 30, 2012, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
zachariaho

Total Points: 34
Total Questions: 87
Total Answers: 100

Location: England
Member since Tue, Sep 8, 2020
4 Years ago
;