加急!javascript实现下拉列表框显示(输入拼音头显示选项)

时间:2022-12-30 10:11:31
客户端用浏览器。在一个下拉列表框中有100多子项(用汉字表示,如一百多个名字)。客户提出输入拼音头,下拉列表框打开,焦点在拼音头为对按下字母的那条子项上按回车键则选中此子项。
这点如同在OICQ中搜索名字,按下一个字母键,则第一个字母为此字母的单词或汉字就为当前的选项。
还有,如:在选项中有“张三”“张三火”两个人名用户按下"z""s""h"三个字后当前显示的选项就为“张三火”.
小弟是用D6的TWebmodule做服务器端,初次学习使用java,实在感觉无从下手。还望高手指点迷津。多谢多谢!!!

8 个解决方案

#1


不知道,学习ing!

#2


其实下拉列表中如果全是英文字母打头的话,浏览器本身就提供了这个功能,如果是汉字的话,你把焦点移到下拉列表,输入一个张字,它也会自动找到第一个姓张的名字的。

#3


一种自己写拼音

<select name="username" onkeydown=go()>
     <option value="1" sp="ZS">张三</option>
     <option value="2" sp="ZSH">张三火</option>
     <option value="3" sp="LS">李四</option>
     <option value="4" sp="LSS">李四水</option>
</select>

<script>
var sel="",timer=null;
function go(){
       with(window.event){
          with(srcElement){
              if(keyCode<48)return;
              if(keyCode>95)keyCode-=48
              sel+=String.fromCharCode(keyCode)
              window.status=sel
              for(i=0;i<length;i++){
               if(options[i].sp.indexOf(sel)==0){selectedIndex=i;break;}
              }
          }
          returnValue=false;
          clearTimeout(timer)
          timer=setTimeout("sel=''",500);
     }
}
</script>

#4


http://www.blueidea.com/user/qswh/GB2312.html

#5


我曾经作过这种东西,是用数据库存储拼音和汉字对应表,再作查询

#6


谢谢秋水!

#7


我怎么结贴送分呀?

#8


若这方面的汉字比较多,可以写一个程序,自动提取汉字的拼音头放到数据库中,即如楼上朋友说:数据库存储拼音和汉字对应表,再作查询!
若需要源代码delphi或vb,留下email

#1


不知道,学习ing!

#2


其实下拉列表中如果全是英文字母打头的话,浏览器本身就提供了这个功能,如果是汉字的话,你把焦点移到下拉列表,输入一个张字,它也会自动找到第一个姓张的名字的。

#3


一种自己写拼音

<select name="username" onkeydown=go()>
     <option value="1" sp="ZS">张三</option>
     <option value="2" sp="ZSH">张三火</option>
     <option value="3" sp="LS">李四</option>
     <option value="4" sp="LSS">李四水</option>
</select>

<script>
var sel="",timer=null;
function go(){
       with(window.event){
          with(srcElement){
              if(keyCode<48)return;
              if(keyCode>95)keyCode-=48
              sel+=String.fromCharCode(keyCode)
              window.status=sel
              for(i=0;i<length;i++){
               if(options[i].sp.indexOf(sel)==0){selectedIndex=i;break;}
              }
          }
          returnValue=false;
          clearTimeout(timer)
          timer=setTimeout("sel=''",500);
     }
}
</script>

#4


http://www.blueidea.com/user/qswh/GB2312.html

#5


我曾经作过这种东西,是用数据库存储拼音和汉字对应表,再作查询

#6


谢谢秋水!

#7


我怎么结贴送分呀?

#8


若这方面的汉字比较多,可以写一个程序,自动提取汉字的拼音头放到数据库中,即如楼上朋友说:数据库存储拼音和汉字对应表,再作查询!
若需要源代码delphi或vb,留下email