可编辑下拉框的2种实现方式


Posted in Javascript onJune 13, 2014

可编辑下拉框-HTML

<div style="position:relative;"> 
<select style="width:120px;" onchange="document.getElementById('input').value=this.value"> 
<option value="A类">A类</option> 
<option value="B类">B类</option> 
<option value="C类">C类</option> 
<option value="D类">D类</option> 
</select> 
<input id="input" name="input" style="position:absolute;width:99px;height:16px;left:1px;top:2px;border-bottom:0px;border-right:0px;border-left:0px;border-top:0px;"> 
</div>

可编辑下拉框-JS
<html> 
<head> 
<meta name="GENERATOR" content="Microsoft FrontPage 5.0"> 
<meta name="ProgId" content="FrontPage.Editor.Document"> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<title>可编辑下拉框</title> 
</head> 
<body> 
<table style="border:2px outset;background-color:#d2e8FF" width="250" height="100" align="center"> 
<tr> 
<td width="60%" height="30" align="center"> 
<select name="fason"> 
<option value="可编辑下拉框">可编辑下拉框</option> 
<option value="作者">作者</option> 
</select> 
</td> 
</tr> 
</table> 
<script language="javascript"> 
function combox(obj,select){ 
this.obj=obj 
this.name=select; 
this.select=document.getElementsByName(select)[0]; 
/*要转换的下拉框*/ 
} 
/*初始化对象*/ 
combox.prototype.init=function(){ 
var inputbox="<input name='combox_"+this.name+"' onchange='"+this.obj+".find()' " 
inputbox+="style='position:absolute;width:"+(this.select.offsetWidth-16)+";height:"+this.select.offsetHeight+";left:"+getL(this.select)+";top:"+getT(this.select)+"'>" 
document.write(inputbox) 
with(this.select.style){ 
left=getL(this.select) 
top=getT(this.select) 
position="absolute" 
clip="rect(0 "+(this.select.offsetWidth)+" "+this.select.offsetHeight+" "+(this.select.offsetWidth-18)+")" 
/*切割下拉框*/ 
} 
this.select.onchange=new Function(this.obj+".change()") 
this.change() } 
/*初始化结束*/ 
////////对象事件定义/////// 
combox.prototype.find=function(){ 
/*当搜索到输入框的值时,下拉框自动定位*/ 
var inputbox=document.getElementsByName("combox_"+this.name)[0] 
with(this.select){ 
for(i=0;i<options.length;i++) 
if(options[i].text.indexOf(inputbox.value)==0){ 
selectedIndex=i 
this.change(); 
break; 
} 
} 
} 
combox.prototype.change=function(){ 
/*定义下拉框的onchange事件*/ 
var inputbox=document.getElementsByName("combox_"+this.name)[0] 
inputbox.value=this.select.options[this.select.selectedIndex].text; 
with(inputbox){select();focus()}; 
} 
////////对象事件结束/////// 
/*公用定位函数(获取控件绝对坐标)*/ 
function getL(e){ 
var l=e.offsetLeft; 
while(e=e.offsetParent)l+=e.offsetLeft; 
return l 
} 
function getT(e){ 
var t=e.offsetTop; 
while(e=e.offsetParent)t+=e.offsetTop; 
return t 
} 
/*结束*/ 
</script> 
<script language="javascript"> 
var a=new combox("a","fason") 
a.init() 
</script> 
</body> 
</html>
Javascript 相关文章推荐
js电信网通双线自动选择技巧
Nov 18 Javascript
IE和Firefox的Javascript兼容性总结[推荐收藏]
Oct 19 Javascript
js 判断控件获得焦点的示例代码
Mar 04 Javascript
javascript 实现map集合
Apr 03 Javascript
JQuery实现可直接编辑的表格
Apr 16 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
Nov 20 Javascript
JS常见算法详解
Feb 28 Javascript
angular内置provider之$compileProvider详解
Sep 27 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
Jan 07 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
Apr 14 Javascript
在vue-cli中引入lodash.js并使用详解
Nov 13 Javascript
JS document内容及样式操作完整示例
Jan 14 Javascript
JSP中使用JavaScript动态插入删除输入框实现代码
Jun 13 #Javascript
jquery 新建的元素事件绑定问题解决方案
Jun 12 #Javascript
js动态往表格的td中添加图片并注册事件
Jun 12 #Javascript
jQuery中多个元素的Hover事件解决方案
Jun 12 #Javascript
js获取当前页面的url网址信息
Jun 12 #Javascript
jquery 3D 标签云示例代码
Jun 12 #Javascript
javascript面向对象特性代码实例
Jun 12 #Javascript
You might like
php whois查询API制作方法
2011/06/23 PHP
PHP数据类型的总结分析
2013/06/13 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
短信提示使用 特效
2007/01/19 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
深入理解Javascript作用域与变量提升
2013/12/09 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
Bootstrap基本插件学习笔记之按钮(21)
2016/12/08 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
详解vue-router和vue-cli以及组件之间的传值
2017/07/04 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
node上的redis调用优化示例详解
2018/10/30 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
Python操作串口的方法
2015/06/17 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
2019/11/01 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
会计专业的自荐信
2013/12/12 职场文书
房地产还款计划书
2014/01/10 职场文书
关爱女孩行动实施方案
2014/03/13 职场文书
考核评语大全
2014/04/29 职场文书
品牌转让协议书
2014/08/20 职场文书
基层党员对照检查材料
2014/09/24 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
英语辞职信范文
2015/02/28 职场文书