可编辑下拉框的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 相关文章推荐
一个不错的应用,用于提交获取文章内容,不推荐用
Mar 03 Javascript
javascript 极速 隐藏/显示万行表格列只需 60毫秒
Mar 28 Javascript
JSON 学习之JSON in JavaScript详细使用说明
Feb 23 Javascript
JavaScript访问样式表代码
Oct 15 Javascript
JS中with的替代方法与String中的正则方法详解
Dec 23 Javascript
vue页面使用阿里oss上传功能的实例(二)
Aug 09 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
Aug 17 Javascript
JavaScript体验异步更好的解决办法
Jan 08 Javascript
ES6中定义类和对象的方法示例
Jul 31 Javascript
ElementUI之Message功能拓展详解
Oct 18 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
Apr 30 jQuery
React实现阿里云OSS上传文件的示例
Aug 10 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编程与应用
2006/10/09 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
PHP多线程类及用法实例
2014/12/03 PHP
php计算整个mysql数据库大小的方法
2015/06/19 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
php fread函数使用方法总结
2019/05/28 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
laravel admin实现分类树/模型树的示例代码
2020/06/10 PHP
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
javascript里绝对用的上的字符分割函数总结
2014/07/31 Javascript
nodejs中实现路由功能
2014/12/29 NodeJs
完美兼容多浏览器的js判断图片路径代码汇总
2015/04/17 Javascript
javascript的BOM汇总
2015/07/16 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
2015/09/16 Javascript
js中利用cookie实现记住密码功能
2020/08/20 Javascript
微信小程序访问node.js接口服务器搭建教程
2017/04/25 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
ionic3双击返回退出应用的方法
2019/09/17 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
用python实现批量重命名文件的代码
2012/05/25 Python
Python脚本实时处理log文件的方法
2016/11/21 Python
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
Python爬取豆瓣视频信息代码实例
2019/11/16 Python
对Pytorch中Tensor的各种池化操作解析
2020/01/03 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
Python self用法详解
2020/11/28 Python
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
2015年体育教学工作总结
2015/05/20 职场文书