基于jquery实现的可以编辑选择的下拉框的代码


Posted in Javascript onNovember 19, 2010

效果图:
基于jquery实现的可以编辑选择的下拉框的代码
代码如下:

<!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> 
<title>可以编辑的下来框实现方法--woody.wu</title> 
<style type="text/css"> 
.cssINPUT 
{ 
height: 19PX; 
padding: 3PX; 
padding-left: 3px; 
padding-right: 0px; 
margin: 0PX; 
border: 1PX SOLID #C0C0C0; 
font-family: 宋体,arial; 
font-size: 9pt; 
} 
.select_div_list 
{ 
position: absolute; 
border: 1px solid black; 
background-color: White; 
overflow: hidden; 
overflow-y: auto; 
} 
.select_div_list_ul 
{ 
margin: 0px; 
padding: 0px; 
list-style-type: none; 
} 
.select_div_list_ul li 
{ 
cursor: pointer; 
padding-left: 3px; 
font-family: 宋体,arial; 
font-size: 9pt; *padding:0px;*height:20px;_height:14px;_margin:0px;_height:14px;*margin:0px;line-height:14px;} 
.selectSPAN 
{ 
background-color: Yellow; 
} 
</style> 
<script type="text/javascript" src="Js/jquery-1.4.2.min.js"></script> 
<script type="text/javascript"> 
var inputID = "input1"; 
var selectID = "select1"; 
var widt = 0; 
var inputWi = 0; 
var he = 0; 
$(function() { 
inputID = "input1"; 
selectID = "select1"; 
widt = 200; 
inputWi = widt - 20; 
he = $("#user").height() - 41; 
var offset = $("input[id=input1]").offset(); 
$("#" + selectID).change(function() { 
var newvar = $("#" + selectID).find("option:selected").text(); 
$("#" + inputID).val(newvar); 
}).click(function() { 
$("#select_div_on_key" + selectID).remove(); 
}).css({ "display": "block", "width": widt + "px", "z-index": 1, "clip": "rect(0px " + widt + "px 51px 151px)" }); 
$("#" + inputID).keyup(function() { 
ShowSelectCombo(); 
}).click(function() { 
ShowSelectCombo(); 
}).css({ "z-index": 2, "width": inputWi + "px" }); ; 
}); 
function ShowSelectCombo() { 
var pob = $("#" + inputID); 
var v = pob.val(); 
var off = pob.offset(); 
var wi = pob.width() + 16; 
var tp = off.top + pob.height() - 100 + 7; 
var lef = off.left - 200 + 2; 
var html = "<div class='select_div_list' id='select_div_on_key" + selectID + "' style='width:" + wi + "px;top:" + tp + "px;left:" + lef + "px;'><ul class='select_div_list_ul'>"; 
$("#" + selectID).find("option").each(function() { 
var tk = $(this); 
html += "<li val='" + tk.val() + "' ht='" + encodeURIComponent(tk.html()) + "'>" + tk.html().replace(v, "<span class='selectSPAN'>" + v + "</span>") + "</li>"; 
}); 
html += "</ul></div>"; 
var ulDIV = $("#select_div_on_key" + selectID); 
ulDIV.remove(); 
$("#user").append(html); 
var ulDIV = $("#select_div_on_key" + selectID); 
var hei = ulDIV.find("ul").height(); 
var newHeight = hei > he ? he : hei; 
ulDIV.css({ height: newHeight + "px" }); 
ulDIV.find("li").hover(function() { 
$(this).css({ "background-color": "#316ac5" }); 
}, function() { 
$(this).css({ "background-color": "white" }); 
}); 
ulDIV.find("li").click(function() { 
var ki = $(this); 
var va = ki.attr("val"); 
var htm = ki.attr("ht"); 
htm = decodeURIComponent(htm); 
$("#" + inputID).val(htm); 
$("#" + selectID).val(va); 
ulDIV.remove(); 
}); 
} 
</script> 
</head> 
<body> 
<form name="form1" method="post" action="qqq.aspx" id="form1"> 
<div> 
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTIxMjQ5OTYwOTdkZH49VftoWVz/vaIL4f2byf4/w86b" /> 
</div> 
<div> 
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWDwL15JrvCgL2jaW0BgL3jaW0BgL0jaW0BgL1jaW0BgLyjaW0BgLzjaW0BgLwjaW0BgLujaW0BgL3jeW3BgKm4u6hCAL3je23BgL3jdG3BgL3jdW3BgL3jdm3BnqAGtu2PbiTi9dWHvWrW6QCqrYo" /> 
</div> 
<div style='position: absolute; top: 100px; width: 500px; left: 200px; padding: 10px; 
height: 400px; border: 1px solid red;' id='user'> 
<div> 
<div style='overflow: hidden; margin-top: 10px; height: 30px;'> 
<input id="input1" name="input1" type="text" class='cssINPUT' style='_height: 20px; 
*height: 13px; display: block; float: left; position: absolute; border-right: 0px;' /> 
<select name="select1" id="select1" class="cssINPUT" style="float: left; 
display: none; height: 27PX; position: absolute; cursor: pointer; margin-left: 2px; 
padding: 0px;"> 
<option value="1">?身和底?修整???lt;/option> 
<option value="2">真空吸?</option> 
<option value="3">氧/乙炔焊割工具</option> 
<option value="4">冷?机 </option> 
<option value="5">大市?鋈龅?lt;/option> 
<option value="6">大擦</option> 
<option value="7">第三十</option> 
<option value="9">大市??lt;/option> 
<option value="20">?身外形修复机(介子机)</option> 
<option value="1022">沙皮狗</option> 
<option value="22">整形机</option> 
<option value="23">?升机</option> 
<option value="24">修?躺板</option> 
<option value="25">空?制冷?┏渥⒒ </option> 
</select> 
</div> 
</div> 
</form> 
</body> 
</html>
Javascript 相关文章推荐
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
Jan 13 Javascript
分享自己用JS做的扫雷小游戏
Feb 17 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
May 05 Javascript
javascript实现任务栏消息提示的简单实例
May 31 Javascript
js实现文字选中分享功能
Jan 25 Javascript
vue loadmore 组件滑动加载更多源码解析
Jul 19 Javascript
教你5分钟学会用requirejs(必看篇)
Jul 25 Javascript
详解javascript replace高级用法
Feb 17 Javascript
Vue v-text指令简单使用方法示例
Sep 19 Javascript
JavaScript类的继承多种实现方法
May 30 Javascript
js实现页面导航层级指示效果
Aug 25 Javascript
基于js实现的图片拖拽排序源码实例
Nov 04 Javascript
使用jQuery的将桌面应用程序引入浏览器
Nov 19 #Javascript
DIV菜单层实现代码
Nov 19 #Javascript
jQuery 定时局部刷新(setInterval)
Nov 19 #Javascript
基于jquery的跨域调用文件
Nov 19 #Javascript
jquery.cvtooltip.js 基于jquery的气泡提示插件
Nov 19 #Javascript
jQuery lazyload 的重复加载错误以及修复方法
Nov 19 #Javascript
JQuery 选择和过滤方法代码总结
Nov 19 #Javascript
You might like
php 5.3.5安装memcache注意事项小结
2011/04/12 PHP
php实现RSA加密类实例
2015/03/26 PHP
goto语法在PHP中的使用教程
2020/09/17 PHP
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
js实现简单div拖拽功能实例
2015/05/12 Javascript
JavaScript中的getMilliseconds()方法使用详解
2015/06/10 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
复习Python中的字符串知识点
2015/04/14 Python
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
Pycharm更换python解释器的方法
2018/10/29 Python
numpy数组广播的机制
2019/07/12 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
python递归下载文件夹下所有文件
2019/08/31 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
HTML5 Canvas图像模糊完美解决办法
2018/02/06 HTML / CSS
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
自行车广告词大全
2014/03/21 职场文书
交通事故赔偿协议书范本
2014/04/15 职场文书
建筑工程造价专业自荐信
2014/07/08 职场文书
幼儿园大班开学寄语
2014/08/02 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
暑期培训心得体会
2014/09/02 职场文书
农村文化建设标语
2014/10/07 职场文书
2014最新预备党员思想汇报范文:中国梦,我的梦
2014/10/25 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
go goroutine 怎样进行错误处理
2021/07/16 Golang
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript