可编辑下拉框的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判断横竖屏及禁止浏览器滑动条示例
Apr 29 Javascript
Jquery性能优化详解
May 15 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 Javascript
JavaScript中匿名函数用法实例
Mar 23 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
May 16 Javascript
javascript实现根据3原色制作颜色选择器的方法
Jul 17 Javascript
详解Vue2.0里过滤器容易踩到的坑
Jun 01 Javascript
vue中引用swiper轮播插件的教程详解
Aug 16 Javascript
vue2.0项目集成Cesium的实现方法
Jul 30 Javascript
《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析
Apr 07 Javascript
OpenLayers3实现测量功能
Sep 25 Javascript
微信小程序组件生命周期的踩坑记录
Mar 03 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下对数组进行排序的函数
2010/08/08 PHP
基于PHP Socket配置以及实例的详细介绍
2013/06/13 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
js简单的弹出框有关闭按钮
2014/05/05 Javascript
JQuery中clone方法复制节点
2015/05/18 Javascript
新手学习前端之js模仿淘宝主页网站
2016/10/31 Javascript
浅谈js中几种实用的跨域方法原理详解
2016/12/02 Javascript
Vue 短信验证码组件开发详解
2017/02/14 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
mongoose更新对象的两种方法示例比较
2017/12/19 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
WebSocket的简单介绍及应用
2019/05/23 Javascript
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
浅谈python 四种数值类型(int,long,float,complex)
2016/06/08 Python
Python 正则表达式实现计算器功能
2017/04/29 Python
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
python3使用SMTP发送简单文本邮件
2018/06/19 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
夜班门卫岗位职责
2013/12/09 职场文书
一年级小学生评语
2014/04/22 职场文书
党的群众路线教育实践活动对照检查材料思想汇报(党员篇)
2014/09/25 职场文书
群众路线剖析材料(四风)
2014/11/05 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
sql字段解析器的实现示例
2021/06/23 SQL Server
UNION CREATIVE《Re:从零开始的异世界生活》雷姆手办
2022/03/20 日漫