可编辑下拉框的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 相关文章推荐
对JavaScript的eval()中使用函数的进一步讨论
Jul 26 Javascript
jquery阻止冒泡事件使用模拟事件
Sep 06 Javascript
js 获取元素在页面上的偏移量的方法汇总
Apr 13 Javascript
js图片卷帘门导航菜单特效代码分享
Sep 10 Javascript
JQuery中解决重复动画的方法
Oct 17 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
Nov 07 Javascript
javascript基于原型链的继承及call和apply函数用法分析
Dec 15 Javascript
Java与JavaScript中判断两字符串是否相等的区别
Mar 13 Javascript
Angular CLI 安装和使用教程
Sep 13 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
Oct 19 Javascript
Angular学习笔记之集成三方UI框架、控件的示例
Mar 23 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
Oct 24 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在线打包程序源码
2008/07/27 PHP
ajax实现无刷新分页(php)
2010/07/18 PHP
两个php日期控制类实例
2014/12/09 PHP
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
JScript中的&quot;this&quot;关键字使用方式补充材料
2007/03/08 Javascript
学习ExtJS fit布局使用说明
2009/10/08 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
玩转方法:call和apply
2014/05/08 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
angularjs中的$eval方法详解
2017/04/24 Javascript
Angular实现响应式表单
2017/08/04 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
2017/09/05 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
python集合用法实例分析
2015/05/30 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
Python如何急速下载第三方库详解
2020/11/02 Python
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
三星加拿大官方网上商店:Samsung CA
2020/12/18 全球购物
澳大利亚在线划船、露营和钓鱼商店:BCF Australia
2020/03/22 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
费用会计岗位职责
2014/01/01 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
婚庆答谢词
2015/01/04 职场文书
生产现场禁烟通知
2015/04/23 职场文书
开工典礼致辞
2015/07/29 职场文书
创业计划书之游泳馆
2019/09/16 职场文书
JS实现简单控制视频播放倍速的实例代码
2021/04/18 Javascript