Bueno, analizalo y adaptalo a tus necesidades:
  
Código:
 /////////////////////////////////////////
// PARA FILTRAR LA LISTA DE MUNICIPIOS //
/////////////////////////////////////////
   function addOpt(oCntrl, sTxt, sVal, sCnd){
    if (sTxt.substr(0, sCnd.length).toUpperCase() == sCnd.toUpperCase()){
     var selOpcion=new Option(sTxt, sVal);
     eval(oCntrl.options[i++]=selOpcion);
    }
   }
   function cambia(oCntrl){
    var txtVal = document.CambiarA.txt.value;
    while(oCntrl.length > 0) oCntrl.options[0]=null;
    i = 0;
    oCntrl.clear;
<% Do while not RsMunis.EOF %>
    addOpt(oCntrl,  "<% = RsMunis("MUNICIPIO") %>", "form_principal.asp?ID_MUN_HIDDEN=<% = RsMunis("ID_MUNICIP") %>", txtVal);
<%
RsMunis.MoveNext
Loop
%>
   }
/////////////////////////////////////////////////
// FIN DE: PARA FILTRAR LA LISTA DE MUNICIPIOS //
/////////////////////////////////////////////////
<form action="" method="post" name="CambiarA" id="CambiarA" onSubmit="return false;">
<table align="center">
<tr>
<td><strong>Cambiar a:</strong></td>
</tr>
<tr>
<td align="center"><input name="txt" type="text" onKeyUp="cambia(document.CambiarA.ID_MUN_HIDDEN)" autocomplete="off"></td>
</tr>
<tr>
<td align="center"><select name="ID_MUN_HIDDEN" size="5" id="select3" onClick="location=document.CambiarA.ID_MUN_HIDDEN.options[document.CambiarA.ID_MUN_HIDDEN.selectedIndex].value;">
</select></td>
</tr>
</table>
</form>
  No te ofrezco más ayuda que esa puesto que en javascript no estoy muy puesto y para hacer eso me llevó casi un día completo de análisis (lo que es no saber tanto 

)