利用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 相关文章推荐
javascript 图片裁剪技巧解读
Nov 15 Javascript
jquery属性过滤选择器使用示例
Jun 18 Javascript
基于JS实现textarea中获取动态剩余字数的方法
May 25 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
Jul 01 Javascript
jQuery实现字符串全部替换的方法
Dec 12 Javascript
Javascript中的async awai的用法
May 17 Javascript
jQuery事件_动力节点Java学院整理
Jul 05 jQuery
Angular2管道Pipe及自定义管道格式数据用法实例分析
Nov 29 Javascript
js判断文件类型大小并给出提示的实现方法
Jan 03 Javascript
jQuery实现的两种简单弹窗效果示例
Apr 18 jQuery
es6数组的flat(),flatMap()函数用法实例分析
Apr 18 Javascript
vue修饰符.capture和.self的区别
Apr 22 Vue.js
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内置过滤器FILTER使用实例
2014/06/25 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
浅谈laravel框架与thinkPHP框架的区别
2019/10/23 PHP
jQuery $.each的用法说明
2010/03/22 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
javascript实现多栏闭合展开式广告位菜单效果实例
2015/08/05 Javascript
基于jQuery实现select下拉选择可输入附源码下载
2016/02/03 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
ASP.NET jquery ajax传递参数的实例
2016/11/02 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
2016/11/06 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
详解Angular路由之路由守卫
2018/05/10 Javascript
angularjs自定义过滤器demo示例
2019/08/24 Javascript
Vue中函数防抖节流的理解及应用实现
2020/04/24 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
Python中关键字is与==的区别简述
2014/07/31 Python
详细探究Python中的字典容器
2015/04/14 Python
Python解析nginx日志文件
2015/05/11 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
2019/08/24 Python
python创建n行m列数组示例
2019/12/02 Python
python数据预处理 :数据共线性处理详解
2020/02/24 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
CSS3制作Dropdown下拉菜单的方法
2015/07/18 HTML / CSS
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
便利店的创业计划书
2014/01/15 职场文书
竞选部长演讲稿
2014/04/26 职场文书
销售团队口号大全
2014/06/06 职场文书
五四青年节的活动方案
2014/08/20 职场文书
就业协议书怎么填
2014/09/15 职场文书
加强干部作风建设整改方案
2014/10/24 职场文书