Select下拉框模糊查询功能实现代码


Posted in Javascript onJuly 22, 2016

select下拉列表框支持输入模糊查询功能,设计非常的人性化,下面小编给大家分享了关键代码,大家根据自己的需求适当的添加修改,有任何问题欢迎给我反馈。

关键代码如下所示:

<HTML> 
<HEAD> 
<META http-equiv='Content-Type' content='text/html; charset=gb2312'> 
<TITLE>可输入的下拉框</TITLE> 
</HEAD> 
<BODY > 
<Script Language="Javascript"> 
var j = 0; 
function SelectValue(obj) 
{ 
var input = obj.parentNode.nextSibling; 
document.all.box2.value = obj.options[obj.selectedIndex].text; 
document.getElementById("txtSection").value=obj.options[obj.selectedIndex].value; 
alert(document.getElementById("txtSection").value); 
} 
function InputValue(obj) 
{ 
var n = 1; 
var tmpObj; 
var src = document.all.SelectOption; 
var msg = document.all.msg; 
if(event.keyCode != 40 && event.keyCode != 38 && event.keyCode != 13){ 
if(obj.value!=""){ 
msg.style.display=""; 
msg.innerHTML=""; 
if(msg.hasChildNodes()) 
{ 
msg.childNodes[0].parentNode.removeChild(msg.childNodes[0]); 
} 
for (var i=0;i<src.length;i++){ 
var selValue = document.createElement("div"); 
var selText = document.createElement("div"); 
selText.value = src(i).value; 
selText.innerHTML = src(i).text; 
if (src(i).text.toLowerCase().indexOf(obj.value.toLowerCase())==0){ 
selText.setAttribute("id","selText"+n); 
selText.onmouseover=function (){ 
this.style.backgroundColor='#003399'; 
this.style.color ='#ffffff'; 
} 
selText.onmouseout=function (){ 
this.style.backgroundColor='#ffffff'; 
this.style.color ='#000000'; 
} 
selText.onclick=function (){ 
document.all.box2.value = this.innerHTML; 
msg.style.display="none"; 
document.getElementById("txtSection").value=this.value; 
} 
msg.appendChild(selText); 
n++; 
} 
} 
} 
else { 
document.all.msg.style.display="none"; 
} 
} 
else { 
//press down key 
if(event.keyCode==40){ 
j++; 
for (var i=0; i<src.length; i++) 
{ 
tmpObj = document.getElementById("selText"+i); 
if(tmpObj != null){ 
tmpObj.style.backgroundColor='#ffffff'; 
tmpObj.style.color ='#000000'; 
} 
} 
tmpObj = document.getElementById("selText"+j); 
if(tmpObj != null){ 
tmpObj.style.backgroundColor='#003399'; 
tmpObj.style.color ='#ffffff'; 
}else{ 
j = 0; 
} 
} 
//press up key 
if (event.keyCode==38){ 
j--; 
for (var i=0; i<src.length; i++) 
{ 
tmpObj = document.getElementById("selText"+i); 
if(tmpObj != null){ 
tmpObj.style.backgroundColor='#ffffff'; 
tmpObj.style.color ='#000000'; 
} 
} 
tmpObj = document.getElementById("selText"+j); 
if(tmpObj != null){ 
tmpObj.style.backgroundColor='#003399'; 
tmpObj.style.color ='#ffffff'; 
}else{ 
j = 2; 
} 
} 
//press enter key 
if (event.keyCode==13){ 
tmpObj = document.getElementById("selText"+j); 
document.all.box2.value = tmpObj.innerHTML; 
msg.style.display="none"; 
document.getElementById("txtSection").value=tmpObj.value; 
} 
} 
} 
function SelMatch(src) 
{ 
var currSel = document.all.box2.value; 
for (var i=0;i<src.length;i++){ 
if (src(i).text==currSel) 
{ 
src.options(i).selected = true; 
} 
} 
} 
function NoMsg() 
{ 
if(document.activeElement.id=="msg") 
return false; 
else 
document.all.msg.style.display='none'; 
} 
</Script> 
<TABLE border=0 cellPadding=1 cellSpacing=0 width="100%"> 
<TR> 
<TD width="24%"><font face="Arial" size="2">Section</font></TD> 
<TD COLSPAN=3 width="76%"> 
<div style="position:relative;"> 
<span style="margin-left:230px;width:18px;overflow:hidden;"> 
<select style="HEIGHT: 22px; WIDTH: 250px; margin-left:-232px;" onchange="SelectValue(this)" onclick="SelMatch(this)" id="SelectOption" name="SelectOption" > 
<OPTION value='ALL' Selected>ALL</OPTION> 
<OPTION value='0TEST1'>0TEST1 = Testing 1 
<OPTION value='0TEST1'>0TEST2 = Testing 1 
<OPTION value='0TEST1'>0TEST3 = Testing 1 
<OPTION value='SECTION'>SECTION = Section Description XXXXX AAA 
</OPTION> 
</select></span> 
<input name="box2" id="box2" style="width:230px;position:absolute;left:0px;" onkeyup="InputValue(this)" onblur="NoMsg()" onfocus="this.select();InputValue(this)" value="0" > 
<div id="msg" style="border:1px solid green; font-size :14PX;white-space:nowrap;overflow:hidden; 
width:230px;position:absolute;left:0px;top:20px;display:none"></div> 
</div> 
<Input Type="Hidden" Name="txtSection" id="txtSection"> 
</TD> 
</TR> 
</TABLE> 
<p> 
</BODY></HTML>

以上所述是小编给大家介绍的Select下拉框模糊查询功能实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 折半查找字符在数组中的位置(有序列表)
Dec 09 Javascript
jQuery-Tools-overlay 使用介绍
Jul 14 Javascript
javascript jscroll模拟html元素滚动条
Dec 18 Javascript
jquery复选框全选/取消示例
Dec 30 Javascript
js基础知识(公有方法、私有方法、特权方法)
Nov 06 Javascript
JS实现字符串转日期并比较大小实例分析
Dec 09 Javascript
AngularJs Injecting Services Into Controllers详解
Sep 02 Javascript
原生js实现addclass,removeclass,toggleclasss实例
Nov 24 Javascript
AJAX在JQuery中的应用详解
Jan 30 jQuery
基于Node.js的大文件分片上传示例
Jun 19 Javascript
详解package.json版本号规则
Aug 01 Javascript
修改vue源码实现动态路由缓存的方法
Jan 21 Javascript
jQuery Select下拉框操作小结(推荐)
Jul 22 #Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
Jul 22 #Javascript
JQuery 设置checkbox值二次无效的解决方法
Jul 22 #Javascript
jQuery 自定义下拉框(DropDown)附源码下载
Jul 22 #Javascript
Javascript基础学习笔记(菜鸟必看篇)
Jul 22 #Javascript
JS实现的多张图片轮流播放幻灯片效果
Jul 22 #Javascript
高效Web开发的10个jQuery代码片段
Jul 22 #Javascript
You might like
DOMXML函数笔记
2006/10/09 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
2011/05/04 PHP
php文件压缩之PHPZip类用法实例
2015/06/18 PHP
注释PHP和html混合代码的小技巧(分享)
2016/11/03 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
新浪微博字数统计 textarea字数统计实现代码
2011/08/28 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
javaScript嗅探执行神器-sniffer.js
2017/02/14 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
node.js中使用Export和Import的方法
2017/09/18 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
Element DateTimePicker日期时间选择器的使用示例
2020/07/27 Javascript
Python的地形三维可视化Matplotlib和gdal使用实例
2017/12/09 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
ProForm英国站点:健身房和健身器材网上商店
2019/06/05 全球购物
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
关于抽烟的检讨书
2014/02/25 职场文书
人力管理专业毕业生求职信
2014/02/27 职场文书
《散步》教学反思
2014/03/02 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
水电施工员岗位职责
2015/04/11 职场文书
成人成长感言如何写?
2019/08/16 职场文书
浅谈克隆 JavaScript
2021/11/02 Javascript