<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META content="fason,阿信" name=Author>
<title>动态提示的下拉框</title>
<style>
a{color:red;text-decoration:none;font-size:12px}
</style>
</head>
<body onload="Init()">
<center>
<h2>动态提示的下拉框</h2>
<hr>
<form name=frm>
<table>
  <tr>
    <td>请输入1或2或3或4或5进行测试:<br><input name="txt" style="width:100px" onkeyup="SelectTip(0)"> <input type="button" value="reset" onclick="SelectTip(1)"></td>
  </tr>
  <tr>
    <td>
    <span id="demo"><select name="demo" style="width:100px" size=10 onchange="txt.value=options[selectedIndex].text;">
        <option value="1">1</option>
        <option value="12">12</option>
        <option value="123">123</option>
        <option value="1234">1234</option>
        <option value="2">2</option>
        <option value="23">23</option>
        <option value="234">234</option>
        <option value="2345">2345</option>
        <option value="3">3</option>
        <option value="34">34</option>
        <option value="345">345</option>
        <option value="3456">3456</option>
        <option value="5">5</option>
        <option value="51">51</option>
        <option value="51w">51w</option>
        <option value="51wi">51wi</option>
        <option value="51win">51win</option>
        <option value="51windows">51windows</option>
        </select></span>
    </td>
  </tr>
</form>
</table>
<hr>
<script language="javascript">
var TempArr=[];//存贮optionfunction Init(){
var SelectObj=document.frm.elements["demo"]
/*先将数据存入数组*/
with(SelectObj)
        for(i=0;i<length;i++)TempArr[i]=[options[i].text,options[i].value]
}function SelectTip(flag){
var TxtObj=document.frm.elements["txt"]
var SelectObj=document.getElementById("demo")
var Arr=[]
with(SelectObj){
        var SelectHTML=innerHTML.match(/<[^>]*>/)[0]
        for(i=0;i<TempArr.length;i++)
        if(TempArr[i][0].indexOf(TxtObj.value)==0||flag)//若找到以txt的内容开头的,添option。若flag为true,对下拉框初始化
        Arr[Arr.length]="<option value='"+TempArr[i][1]+"'>"+TempArr[i][0]+"</option>"
        innerHTML=SelectHTML+Arr.join()+"</SELECT>"
}
}
</script>
</body>
看看这段代码是否是lz要的

解决方案 »

  1.   

    目前流行用ajax+dom操作来实现!
      

  2.   

    自己改写的,还不错.你可以下载一下的.http://download.csdn.net/source/1068899
      

  3.   

    说"可以实现的"都是上帝!
    因为他们从来都把DEMO当作真正的实现。前端捕获输入和将返回的索引结果显示到输入框,在大街上拉个民工教他一小时js肯定能教会他。
    但是后台的索引数据是baidu,google的核心技术的力量,强大的海量的搜索引擎在支持。你能实现?你有那么大的海量物理存储和数据?你有那么快速的检索效果?
    如果你还在想用数据库存来实现那你可以洗洗睡了。我的答案是我知道怎么实现的但我没有条件实现
      

  4.   

    如果是.net环境下有autocomplete控件,如果是其他的开发环境,你可以在jQuery或者Prorotype的扩展包里找一下。很多的。
      

  5.   

    楼主可以参考下这个地址:
    http://hi.baidu.com/maomao022200/blog/item/a91f9090b993a58aa977a4d3.html
    自认为可以满足你的需求
      

  6.   

    AJAX里面有个控件,好像是autocomplete。能实现这个功能~!赵劼老师的视频讲座里有详细介绍的。可以很好的学习下AJAX!