利用jQuery实现可输入搜索文字的下拉框


Posted in Javascript onOctober 23, 2013

先看效果
利用jQuery实现可输入搜索文字的下拉框 
利用jQuery实现可输入搜索文字的下拉框 
功能:点击下拉框输入框时,自动显示下面的下拉列表,而且是根据输入框中输入的搜索添加,自动在后台查找,然后传到前台,展现页面。
用的的js:

var $xialaSELECT; 
$(document).ready(function(){ 
initXialaSelect(); 
initSearch(); 
}); 
var temptimeout=null; 
var query=""; 
function searchDev(key){ 
//if(key == "")return; 
query=key; 
clearTimeout(temptimeout); 
temptimeout= setTimeout(findUnSaved, 500); 
} 
function findUnSaved() 
{ 
//alert("dd"); 
//if(1==1)return; 
$.ajax({ 
type: "post", 
data:{'query':query}, 
url: path + "/tList.action", 
success: function(data) { 
xiala(data); 
}, 
error: function(data) { 
alert("加载失败,请重试!"); 
} 
}); 
} 
function initSearch() 
{ 
//定义一个下拉按钮层,并配置样式(位置,定位点坐标,大小,背景图片,Z轴),追加到文本框后面 
$xialaDIV = $('<div></div>').css('position', 'absolute').css('left', $('#province').position().left + $('#province').width() - 15 + 'px').css('top', 
$('#province').position().top + 4 + 'px').css('background', 'transparent url(../images/lala.gif) no-repeat top left').css('height', '16px').css('width', 
'15px').css('z-index', '100'); 
$('#province').after($xialaDIV); 
//鼠标进入修改背景图位置 
$xialaDIV.mouseover(function(){ 
$xialaDIV.css('background-position', ' 0% -16px'); 
}); 
//鼠标移出修改背景图位置 
$xialaDIV.mouseout(function(){ 
$xialaDIV.css('background-position', ' 0% -0px'); 
}); 
//鼠标按下修改背景图位置 
$xialaDIV.mousedown(function(){ 
$xialaDIV.css('background-position', ' 0% -32px'); 
}); 
//鼠标释放修改背景图位置 
$xialaDIV.mouseup(function(){ 
$xialaDIV.css('background-position', ' 0% -16px'); 
if($xialaSELECT) 
$xialaSELECT.show(); 
}); 
$('#province').mouseup(function(){ 
$xialaDIV.css('background-position', ' 0% -16px'); 
$xialaSELECT.show(); 
}); 
} 
var firstTimeYes=1; 
//文本框的下拉框div 
function xiala(data){ 
//first time 
if($xialaSELECT) 
{ 
$xialaSELECT.empty(); 
} 
//定义一个下拉框层,并配置样式(位置,定位点坐标,宽度,Z轴),先将其隐藏 
//定义五个选项层,并配置样式(宽度,Z轴一定要比下拉框层高),添加name、value属性,加入下拉框层 
$xialaSELECT.append(data); 
if(firstTimeYes == 1) 
{ 
firstTimeYes =firstTimeYes+1; 
}else{ 
$xialaSELECT.show(); 
} 
} 
function initXialaSelect() 
{ 
$xialaSELECT = $('<div></div>').css('position', 'absolute').css('overflow-y','scroll').css('overflow-x','hidden').css('border', '1px solid #809DB9').css('border-top','none').css('left', '125px').css 
('top', $('#province').position().top + $('#province').height() + 6 + 'px').css('width', $('#province').width() + 'px').css('z-index', '101').css('width','152px').css('background','#fff').css('height','200px').css('max-height','600px'); 
$('#province').after($xialaSELECT); 
//选项层的鼠标移入移出样式 
$xialaSELECT.mouseover(function(event){ 
if ($(event.target).attr('name') == 'option') { 
//移入时背景色变深,字色变白 
$(event.target).css('background-color', '#000077').css('color', 'white'); 
$(event.target).mouseout(function(){ 
//移出是背景色变白,字色变黑 
$(event.target).css('background-color', '#FFFFFF').css('color', '#000000'); 
}); 
} 
}); 
//通过点击位置,判断弹出的显示 
$xialaSELECT.mouseup(function(event){ 
//如果是下拉按钮层或下拉框层,则依然显示下拉框层 
if (event.target == $xialaSELECT.get(0) || event.target == $xialaDIV.get(0)) { 
$xialaSELECT.show(); 
} 
else { 
//如果是选项层,则改变文本框的值 
if ($(event.target).attr('name') == 'option') { 
//弹出value观察 
$('#nce').val($(event.target).html()); 
$('#d').val($(event.target).attr("d")); 
//if seleced host then hidden the dev type 
if($(event.target).attr("ass") == 3305) 
{ 
$("#ype").hide(); 
$("#ost").val(1); 
}else{ 
$("#ype").show(); 
$("#ost").val(-1); 
} 
} 
//如果是其他位置,则将下拉框层 
if ($xialaSELECT.css('display') == 'block') { 
$xialaSELECT.hide(); 
} 
} 
}); 
$xialaSELECT.hide(); 
} 
var k = 1; 
document.onclick = clicks; 
function clicks() 
{ 
if(k ==2){ 
k = 1; 
if($xialaSELECT) 
{ 
if ($xialaSELECT.css('display') == 'block') { 
$xialaSELECT.hide(); 
} 
} 
}else{ 
k = 2; 
} 
}

.cba { 
width: 150px; 
height: 18px; 
} 
.selectlala { 
text-align: left; 
line-height: 20px; 
padding-left: 5px; 
width: 147px; 
font-family: Arial,verdana,tahoma; 
height: 20px; 
} 
<input type="text" name="province" id="province" class="cba" onkeyup="searchDev(this.value)"/>
Javascript 相关文章推荐
js资料prototype 属性
Mar 13 Javascript
JavaScript 字符串乘法
Aug 20 Javascript
jQuery LigerUI 使用教程入门篇
Jan 18 Javascript
JavaScript返回网页中锚点数目的方法
Apr 03 Javascript
js实现将选中内容分享到新浪或腾讯微博
Dec 16 Javascript
JavaScript SHA512加密算法详细代码
Oct 06 Javascript
Node.js制作简单聊天室
Jan 12 Javascript
微信小程序 页面跳转如何实现传值
Apr 05 Javascript
详解微信小程序设置底部导航栏目方法
Jun 29 Javascript
JS实现网页抢购功能(触发,终止脚本)
Nov 27 Javascript
Angular8 Http拦截器简单使用教程
Aug 20 Javascript
JavaScript声明变量和数据类型的转换
Apr 12 Javascript
jquery模拟SELECT下拉框取值效果
Oct 23 #Javascript
js、css、img等浏览器缓存问题的2种解决方案
Oct 23 #Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
Oct 23 #Javascript
3分钟写出来的Jquery版checkbox全选反选功能
Oct 23 #Javascript
js(jQuery)获取时间的方法及常用时间类搜集
Oct 23 #Javascript
js简单实现HTML标签Select联动带跳转
Oct 23 #Javascript
JS Date函数整理方便使用
Oct 23 #Javascript
You might like
PHP文本数据库的搜索方法
2006/10/09 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
代码生成器 document.write()
2007/04/15 Javascript
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
页面使用密码保护代码
2013/04/10 Javascript
JavaScript自执行闭包的小例子
2013/06/29 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
2014/11/03 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
jQuery Ajax全解析
2017/02/13 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
Nuxt.js SSR与权限验证的实现
2018/11/21 Javascript
JS 事件机制完整示例分析
2020/01/15 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
pandas 按照特定顺序输出的实现代码
2018/07/10 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
解决Python3下map函数的显示问题
2019/12/04 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
盛大二次面试题
2016/11/18 面试题
市场营销工作计划书
2014/09/15 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
python实现监听键盘
2021/04/26 Python