2012-05-31 10 views
5

Próbuję zrobić auto kompletne do opcję wybrać w zależności od wejścia od użytkownikaauto kompletne, aby wybrać opcję w javascript

coś

<input type=text onkeyup=findit()> 

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

znalazłem ten kod „, ale to działa tylko na jednym wybierz na stronie (potrzebuję wielu wyborów)

<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> 

Wszelkie pomysły Jak sprawić, by działało na wielu zaznaczeniach na stronie?

Dzięki

Baaroz

Odpowiedz

0

Zazwyczaj autouzupełnianie jest dla pojedynczych wartości, ale jQuery UI autocomplete ma wielokrotnego wyboru funkcji. Może spróbuj tego? Minimalny wysiłek kodowania dla Ciebie w ten sposób.

0

dziwny sposób, aby to zrobić jest zmiana identyfikatora w skrypcie i skopiować go ile razy chcesz użyć tej opcji na stronie. więc na przykład:

select id="sel1" 
select id="sel2" 
select id="sel3" 

, a następnie. skopiuj skrypt i zamień wszystkie (sel) na sel1 obok niego ponownie i zamień (sel) na sel2 i tak dalej. nie jest najlepszym rozwiązaniem, ale zadziała. Powodzenia

Powiązane problemy