可编辑下拉框的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 获取页面的高度及滚动条的位置的代码
May 06 Javascript
jQuery-Tools-overlay 使用介绍
Jul 14 Javascript
解析prototype,JQuery中跳出each循环的方法
Dec 12 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
Oct 22 Javascript
jquery实现的动态回到顶部特效代码
Oct 28 Javascript
JQuery点击行tr实现checkBox选中的简单实例
May 26 Javascript
js创建数组的简单方法
Jul 27 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
Dec 09 Javascript
Element Input组件分析小结
Oct 11 Javascript
vue实现下拉菜单树
Oct 22 Javascript
在vue中通过render函数给子组件设置ref操作
Nov 17 Vue.js
js实现碰撞检测
Jan 29 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中使用全局变量的几种方法
2013/06/24 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
在 Laravel 中动态隐藏 API 字段的方法
2019/10/25 PHP
javascript 控制弹出窗口
2007/04/10 Javascript
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
JSONP之我见
2015/03/24 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
2016/11/07 Javascript
js初始化验证实例详解
2016/11/26 Javascript
微信小程序实战之上拉(分页加载)效果(2)
2017/04/17 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
JS实现百度搜索框
2021/02/25 Javascript
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
python模块smtplib实现纯文本邮件发送功能
2018/05/22 Python
Python Flask框架扩展操作示例
2019/05/03 Python
python如何保证输入键入数字的方法
2019/08/23 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
PyTorch实现AlexNet示例
2020/01/14 Python
专门经营化妆刷的美国彩妆品牌:Sigma Beauty
2017/09/11 全球购物
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
TOWER London官网:鞋子、靴子、运动鞋等
2019/07/14 全球购物
ASP.NET中的身份验证有那些
2012/07/13 面试题
盛大笔试题
2016/11/05 面试题
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
集体婚礼证婚词
2014/01/13 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
学生检讨书范文
2015/01/27 职场文书
服装区域经理岗位职责
2015/04/10 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
七年级作文之下雨天
2019/12/23 职场文书
Python中rapidjson参数校验实现
2021/07/25 Python