可编辑下拉框的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 相关文章推荐
简短几句jquery代码的实现一个图片向上滚动切换
Sep 02 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
Nov 21 Javascript
javascript设计模式--策略模式之输入验证
Nov 27 Javascript
JavaScript+canvas实现七色板效果实例
Feb 18 Javascript
js HTML5 Canvas绘制转盘抽奖
Sep 13 Javascript
JS实现页面数据无限加载
Sep 13 Javascript
微信小程序 支付功能(前端)的实现
May 24 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
Nov 20 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
Jan 10 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
Aug 10 Javascript
vue中接口域名配置为全局变量的实现方法
Sep 20 Javascript
layui自定义工具栏的方法
Sep 19 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
phpMyAdmin 安装教程全攻略
2007/03/19 PHP
在html页面中包含共享页面的方法
2008/10/24 Javascript
9个JavaScript评级/投票插件
2010/01/18 Javascript
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
js采用map取到id集合组并且实现点击一行选中一行
2013/12/16 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
JS清除选择内容的方法
2015/01/29 Javascript
JS验证邮件地址格式方法小结
2015/12/01 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
AngularJS常见过滤器用法实例总结
2017/07/06 Javascript
微信小程序实现全国机场索引列表
2018/01/31 Javascript
Angular如何在应用初始化时运行代码详解
2018/06/11 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
微信小程序页面间跳转传参方式总结
2019/06/13 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
python制作一个桌面便签软件
2015/08/09 Python
python使用tensorflow深度学习识别验证码
2018/04/03 Python
Python高级用法总结
2018/05/26 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
Python pandas如何向excel添加数据
2020/05/22 Python
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
某公司部分笔试题
2013/11/05 面试题
大学生职业生涯规划书范文
2014/01/14 职场文书
爱情检讨书大全
2014/01/21 职场文书
趣味活动策划方案
2014/02/08 职场文书
《长相思》听课反思
2014/04/10 职场文书
病假条格式范文
2015/08/17 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电