下拉框通过输入拼音首字母进行快捷选择的js脚本谁做过? 在IE6.0中发现一个问题,下拉窗口打开后,假设当前选择项为0,在dropdownlist的onkeypress事件处理脚本中通过selectIndex=1来修改当前选中项,此时若鼠标点击到当前dropdownlist之外,当前选中项又恢复原始值0,而不是1。如果下拉窗口未打开,则为1。请问这是什么原因? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 增加select 的onkeypress事件,但是事先对应好,每个键所触发的动作 http://joe.2418.com/programme/html/inputAndDrop/inputAndDrop.htmhttp://joe.2418.com/programme/html/inputAndDrop.rar不过是汉字,不是拼音 -_- var strKey;var lasttimer=Date.parse(Date());var timelimit=2000; function onKeyPress(){ if(strKey==null) { strKey=""; } var length; var strText; var timer; var TheForm; TheForm=event.srcElement; timer=Date.parse(Date()); if(timer-lasttimer>timelimit) {strKey="";} lasttimer=timer; strKey=strKey + String.fromCharCode(window.event.keyCode); length=TheForm.length; for(i=0;i<length;i++) { strText=TheForm.options[i].text; strText=strText.toLowerCase(); intI=strText.indexOf(strKey); if (intI==0) { TheForm.options[i].selected=true; window.event.returnValue=false; return; } } }这个可以实现但是只能实现一个 joe820302(joe):你的方案要输汉字,与我的目标差距较大,遗憾whb147(dodo):你的代码好象没有实现"拼音"首字母 关键是要中文转成拼音.秋水老大写的.http://www.blueidea.com/user/qswh/GB2312.html 自己写的一个过滤选项的.只是,你得预先把中文首字拼音存起来..<script>function Filteropts(){ var opart,astr,alen,opln,i,boo; boo = false; var result = new Array(); var opts = document.all.sel1clone.options; opln = opts.length; astr = document.all.txt1.value.toLowerCase(); alen = astr.length; if(alen == 0) { for(i=0;i<opln;i++) { result[result.length] = opts[i];boo = true; } } else { for(i=0;i<opln;i++) { opart = opts[i].value.toLowerCase().substring(0,alen) if(astr == opart) { result[result.length]=opts[i];boo=true; } } } if(!boo){result[0] = ""} return result;}function bao(){ var opts = document.all.sel1.options; arr = Filteropts(); opts.length=0; for(var i=0;i<arr.length;i++) { opts[opts.length] = new Option(arr[i].text,arr[i].value); }}</script> <!--过滤显示--><input type="text" name="txt1" onkeyup="bao()"><select name="sel1"> <option value="zjmz">专家门诊 <option value="wddfwt">我的得分问题 <option value="wdwt">我的问题 <option value="wdj">我的家</select><!--源数据--><select name="sel1clone" style="display:none"> <option value="zjmz">专家门诊 <option value="wddfwt">我的得分问题 <option value="wdwt">我的问题 <option value="wdj">我的家</select></body></html> wanghr100(灰豆宝宝.net):秋水老大那个我看了,实现第一个汉字首字母拼音的效果,接近我的要求。不过有个问题见http://expert.csdn.net/Expert/topic/3048/3048759.xml?temp=.328808,这个问题我发了新帖,但是不出现在论坛列表里,只出现在"我的问题"里,怪 以前作项目,曾经用vc 做了一个activex控件,嵌入到页面里面,很好用,速度也很快。 汉字内码是按拼音次序排的,而unicode的汉字不是按拼音排的,js中汉字都是unicode,需要unicode到国标内码的转换,目前找不到现成函数,只能把整个二级汉字库放在脚本里进行查表 wanghr100(灰豆宝宝.net):先发50分 这些又是啥意思啊 一个很让人郁闷的问题 请大家帮帮忙 求助jsp上传图片立即显示和可调大小的例子? 动态截取字符 如何用JAVASCRIPT实现文字跑马灯(右往左跑) 表格显示时横向和纵向交叉加亮[分享] 求救,为什么对不齐啊? ***求助***在不同页面可以控制另一页的东西吗?高分!up也有分。 怎样做一下秒表呢? 新手问题(给100分) 请问一下这个网站的F1,F2弹的那个是怎么做的 在线等!!!,关于滚动
http://joe.2418.com/programme/html/inputAndDrop.rar不过是汉字,不是拼音 -_-
var lasttimer=Date.parse(Date());
var timelimit=2000; function onKeyPress()
{
if(strKey==null)
{
strKey="";
}
var length;
var strText;
var timer;
var TheForm;
TheForm=event.srcElement;
timer=Date.parse(Date());
if(timer-lasttimer>timelimit)
{strKey="";}
lasttimer=timer;
strKey=strKey + String.fromCharCode(window.event.keyCode);
length=TheForm.length;
for(i=0;i<length;i++)
{
strText=TheForm.options[i].text;
strText=strText.toLowerCase();
intI=strText.indexOf(strKey);
if (intI==0)
{
TheForm.options[i].selected=true;
window.event.returnValue=false;
return;
}
}
}
这个可以实现
但是只能实现一个
whb147(dodo):你的代码好象没有实现"拼音"首字母
秋水老大写的.
http://www.blueidea.com/user/qswh/GB2312.html
你得预先把中文首字拼音存起来..<script>
function Filteropts()
{
var opart,astr,alen,opln,i,boo;
boo = false;
var result = new Array();
var opts = document.all.sel1clone.options;
opln = opts.length;
astr = document.all.txt1.value.toLowerCase();
alen = astr.length;
if(alen == 0)
{
for(i=0;i<opln;i++)
{
result[result.length] = opts[i];boo = true;
}
}
else
{
for(i=0;i<opln;i++)
{
opart = opts[i].value.toLowerCase().substring(0,alen)
if(astr == opart)
{
result[result.length]=opts[i];boo=true;
}
}
}
if(!boo){result[0] = ""}
return result;
}
function bao()
{
var opts = document.all.sel1.options;
arr = Filteropts();
opts.length=0;
for(var i=0;i<arr.length;i++)
{
opts[opts.length] = new Option(arr[i].text,arr[i].value);
}
}
</script>
<!--过滤显示-->
<input type="text" name="txt1" onkeyup="bao()">
<select name="sel1">
<option value="zjmz">专家门诊
<option value="wddfwt">我的得分问题
<option value="wdwt">我的问题
<option value="wdj">我的家
</select>
<!--源数据-->
<select name="sel1clone" style="display:none">
<option value="zjmz">专家门诊
<option value="wddfwt">我的得分问题
<option value="wdwt">我的问题
<option value="wdj">我的家
</select>
</body>
</html>
不过有个问题见http://expert.csdn.net/Expert/topic/3048/3048759.xml?temp=.328808,这个问题我发了新帖,但是不出现在论坛列表里,只出现在"我的问题"里,怪