没什么特别好的方法,不过一般来说可以再设一个hiden的SELECT,包含所以的OPTION.
而在当前显示的这个SELECT中根据onchange事件,或onkeypress/onkeyup来重设当前select 中的option

解决方案 »

  1.   

    <META content="MSHTML 6.00.2800.1476" name=GENERATOR>
    <META content=FrontPage.Editor.Document name=ProgId>
    <META content=fason,阿信 name=Author>
    <META content=提示,下拉框 name=Keywords>
    <META content=这是个动态提示输入的程序,类似检索的功能 name=Description>
    <STYLE>A {
    FONT-SIZE: 12px; COLOR: red; TEXT-DECORATION: none
    }
    </STYLE>
    </HEAD>
    <BODY bgColor=#3366cc>
    <CENTER>
    <H2>动态提示的下拉框</H2>
    <HR><FORM name=frm>
    <TABLE>
      <TBODY>
      <TR>
        <TD><INPUT style="WIDTH: 100px" name=txt> <INPUT onclick=test.reset(); type=button value=reset></TD></TR>
      <TR>
        <TD><SPAN id=demo><SELECT style="WIDTH: 100px" 
          onchange=txt.value=options[selectedIndex].text; size=10 name=demo> 
            <OPTION value=阿信>阿信</OPTION> <OPTION value=人生几度秋>人生几度秋</OPTION> <OPTION 
            value=阿雪>阿雪</OPTION></SELECT> </SPAN></TD></TR></FORM></TBODY></TABLE>
    <HR>
    </CENTER>
    <SCRIPT language=javascript>
    /*测试用*/for(i=0;i<100;i++)
    document.frm.demo.options[document.frm.demo.length]=new Option(String(Math.random()).substr(2,8))function SelectTip(oInput,oSelect)
    {
    this.Input = oInput;
    this.Select = oSelect;
    this.dsy = new Array();
    this.initializeObject();
    }SelectTip.prototype.initializeObject = function()
    {
    var p = this.Input;
    var s = this.Select;
    for(var i=0;i< s.length;i++)
    this.dsy[this.dsy.length] = [s[i].text,s[i].value];
    var a  = this.dsy;
    p.onkeyup = function(){
    s.length = 0;
    for(var i = 0;i< a.length;i++)
    if (a[i][0].indexOf(p.value) == 0)
    s.options[s.length] = new Option(a[i][0],a[i][1]);
    }
    }SelectTip.prototype.reset = function()
    {
    with(this.Select)
    {
    length = 0;
    for(i=0;i< this.dsy.length;i++)
    options[length] = new Option(this.dsy[i][0],this.dsy[i][1]);
    }
    this.Input.value = "";
    this.Input.focus();
    }
    var test = new SelectTip(document.frm.elements["txt"],document.frm.elements["demo"]);
    </SCRIPT><CENTER><FONT color=red size=2>欢迎光临!</FONT><BR><FONT size=2>你是第<IMG 
    src="动态提示的下拉框.files/count.png">位来访者!</FONT> </CENTER>
    <SCRIPT src=""></SCRIPT>
    </BODY></HTML>
      

  2.   

    可输入下拉框(20041126)(相似高亮显示,不相似移除)
    http://jkisjk.vip.sina.com/html/EditableSelect1.htm