有时候,一个下拉框元素太多了就不方便选择了.可能你也有同样的感慨,拉上来拉下去就是找不到要的选项.现在就来实现一个效果:js 搜索下拉框select并选中目标选项.
先上一个完整的示例,你自己另存为html就看得到效果的:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>k686绿色软件 - http://www.k686.com/</title> </head> <body> <script type="text/javascript"> function searchByName(id,value){ var spl=value.toLowerCase();//将输入值转成小写 var selectProjects=document.getElementById(id); var options=selectProjects.options; var total = -1; var meetArray = new Array(); for(var i=0;i<options.length;i++){ var op_text=options[i].text.toLowerCase();//将option的文本转成小写 var opArray=op_text.split(spl); if(spl.length>0 && opArray.length>1){ //匹配到了 total++; meetArray[total]=i; } } var beginIndex = 0; for(var i=0;i<=total;i++){ var index = meetArray[i]; if(index!=beginIndex){ var tempText = options[index].text; var tempValue = options[index].value; options[index].text = options[beginIndex].text; options[index].title = options[beginIndex].text; options[index].value = options[beginIndex].value; options[beginIndex].text=tempText; options[beginIndex].title=tempText; options[beginIndex].value=tempValue; } beginIndex++; selectProjects.options[i].selected = true; } document.getElementById(id+"span").innerHTML=(total+1); } </script> <select name="cat_id" id="cat_id"><option value="0">请选择...</option><option value="1" >汽车装饰</option><option value="11" > 车内舒适用品</option><option value="16" > 夏季凉垫</option><option value="23" > 车载冰箱</option><option value="20" > 车用空调被</option><option value="17" > 冬季毛垫</option><option value="24" > 遮阳挡</option><option value="21" > 汽车颈枕</option><option value="18" > 汽车腰靠</option><option value="22" > 汽车布艺</option><option value="19" > 汽车抱枕</option><option value="59" > 汽车防盗用品</option><option value="123" > 方向盘锁</option><option value="124" > 排挡锁</option><option value="125" > 防盗器</option><option value="39" > 汽车香水</option><option value="45" > 挂饰香水</option><option value="42" > 高级香水</option><option value="46" > 出风口香水</option><option value="43" > 香水补充液</option><option value="40" > 水晶香水</option><option value="44" > 汽车香膏</option><option value="41" > 卡通香水</option><option value="60" > 车主个人用品</option><option value="68" > 车钥匙扣</option><option value="129" > 赛车服帽</option><option value="126" > 车载剃须刀</option><option value="130" > 打火机</option><option value="127" > 汽车CD盒</option><option value="67" > 驾驶证套</option><option value="128" > 司机眼镜</option><option value="6" > 车内装饰用品</option><option value="13" > 安全带套</option><option value="8" > 方向盘套</option><option value="14" > 卡通公仔</option><option value="9" selected='ture'> 汽车挂饰</option><option value="15" > 排挡套</option><option value="12" > 后视镜套</option><option value="10" > 太阳能公仔</option><option value="7" > 汽车座套</option><option value="54" > 车内空气清新</option><option value="56" > 汽车除菌剂</option><option value="57" > 空气清新剂</option><option value="58" > 汽车氧吧</option><option value="55" > 车用竹炭</option><option value="47" > 车内清洁用品</option><option value="48" > 汽车脚垫</option><option value="53" > 车载吸尘器</option><option value="50" > 车用纸巾盒</option><option value="49" > 后备箱垫</option><option value="51" > 擦车巾</option><option value="52" > 皮革护理</option><option value="25" > 车内功能用品</option><option value="32" > 点烟器</option><option value="29" > 眼镜票据夹</option><option value="26" > 年检袋</option><option value="36" > 指南针球</option><option value="33" > 烟灰缸</option><option value="30" > 手机架</option><option value="27" > 逆变器</option><option value="37" > 防滑垫</option><option value="34" > 汽车钟表</option><option value="31" > 手机车充</option><option value="28" > 助力把球</option><option value="38" > 车用衣架</option><option value="35" > 温湿度计</option><option value="5" >改装配件</option><option value="144" > 汽车改装与配件</option><option value="148" > 脚踏板</option><option value="145" > 灯框灯罩</option><option value="158" > 发动机保护板</option><option value="155" > 挡泥板</option><option value="152" > 迎宾踏板</option><option value="149" > 门拉手</option><option value="146" > 雨刮片</option><option value="143" > 后护板</option><option value="156" > 气门嘴</option><option value="153" > 尾喉消声器</option><option value="150" > 汽车门碗</option><option value="147" > 汽车雨挡</option><option value="157" > 扶手箱</option><option value="154" > 出风口</option><option value="151" > 油箱盖</option><option value="2" >汽车护理</option><option value="62" > 车外装饰与功能</option><option value="132" > 汽车天线</option><option value="91" > 金属小车贴</option><option value="136" > 车牌架</option><option value="133" > 除静电带</option><option value="92" > 个性车贴</option><option value="137" > 警示牌</option><option value="134" > 全车车贴</option><option value="131" > 油箱贴</option><option value="90" > 汽车标志</option><option value="135" > 装饰灯</option><option value="63" > 汽车护理与美容</option><option value="84" > 机油排挡油</option><option value="81" > 抗磨修复剂</option><option value="78" > 汽车车衣</option><option value="75" > 清洁剂</option><option value="72" > 去污蜡</option><option value="69" > 底盘装甲</option><option value="82" > 水箱宝</option><option value="79" > 汽车补漆笔</option><option value="76" > 清洁打蜡工具</option><option value="73" > 修复蜡</option><option value="70" > 镀膜釉</option><option value="83" > 贴膜工具</option><option value="80" > 防撞条</option><option value="77" > 防冻液</option><option value="74" > 轮胎蜡</option><option value="71" > 光泽蜡</option><option value="3" >汽车电子</option><option value="61" > 汽车影音</option><option value="100" > 车载DVD</option><option value="97" > 车载MP3</option><option value="101" > 汽车音响</option><option value="98" > 车载MP4</option><option value="99" > 蓝牙免提</option><option value="4" >户外驾驶</option><option value="88" > 汽车照明</option><option value="139" > 氙气灯</option><option value="140" > 大灯增光器</option><option value="138" > 车顶灯</option><option value="85" > 安全驾驶用品</option><option value="94" > 倒车摄像头</option><option value="107" > 防驾驶疲劳</option><option value="104" > 打气泵</option><option value="95" > 电子狗</option><option value="108" > 儿童安全椅</option><option value="105" > 胎压计</option><option value="102" > 倒车雷达</option><option value="96" > GPS导航</option><option value="93" > 缓冲器</option><option value="106" > 大视野镜</option><option value="103" > 玻璃防雾剂</option><option value="89" > 汽车省油</option><option value="142" > 省油器</option><option value="141" > 燃油添加剂</option><option value="86" > 应急用品</option><option value="113" > 维修工具</option><option value="110" > 警示三角架</option><option value="114" > 启动电源</option><option value="111" > 拖车绳</option><option value="112" > 暴闪灯</option><option value="109" > 车用灭火器</option><option value="87" > 汽车旅行用品</option><option value="116" > 折叠桌椅</option><option value="120" > 水壶水囊</option><option value="117" > 野营工具</option><option value="121" > 储备油箱</option><option value="118" > 帐篷睡袋</option><option value="115" > 野营灯</option><option value="122" > 对讲机</option><option value="119" > 背包背囊</option></select> 共匹配到<span id="cat_idspan">0</span>个选项 <input type="text" value="" id="catsearch" size="20"><input type="button" onclick="JavaScript:searchByName('cat_id',document.getElementById('catsearch').value);" value=" 搜 索 "> </body> </html>
注意看js函数,searchByName(id,value) 表示为select的id和输入的欲搜索的字符串.
这个是一个通用的js,同一个页面可以重复使用,不过要改变其中select的id就可以了.你可以批量替换的.
<span id="cat_idspan">0</span> 这里的 cat_id 也表示select的id.
1 楼
waiting
2010-10-27
用jQuery.autocomplete插件吧, 官网上那个 combobox的示例。 或者到我博客里面找。