可编辑下拉框的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 中的 &amp;&amp; 和 || 使用小结
Apr 25 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
May 03 Javascript
jquery点击改变class并toggle的实现代码
May 15 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
May 27 Javascript
深入理解jQuery()方法的构建原理
Dec 05 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
Jun 15 Javascript
JS中Safari浏览器中的Date
Jul 17 Javascript
Vue实现搜索 和新闻列表功能简单范例
Mar 16 Javascript
微信小程序使用form表单获取输入框数据的实例代码
May 17 Javascript
JS 实现微信扫一扫功能
Sep 14 Javascript
node.js基于socket.io快速实现一个实时通讯应用
Apr 23 Javascript
JS正则表达式常见函数与用法小结
Apr 13 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
国产动画《伍六七》原声大碟大卖,啊哈娱乐引领音乐赋能IP的新尝试
2020/03/08 国漫
解析thinkphp中的导入文件标签
2013/06/20 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
Jquery ThickBox插件使用心得(不建议使用)
2010/09/08 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
Angular Js文件上传之form-data
2015/08/28 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
实例详解JSON数据格式及json格式数据域字符串相互转换
2016/01/07 Javascript
js中遍历Map对象的简单实例
2016/08/08 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
JS FormData上传文件的设置方法
2017/07/05 Javascript
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
2018/08/08 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
Flask数据库迁移简单介绍
2017/10/24 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
2014年党的群众路线学习心得体会
2014/11/05 职场文书
个人委托函范文
2015/01/29 职场文书
MySQL配置主从服务器(一主多从)
2021/08/07 MySQL
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python
Redis实现一个账号只能登录一个设备
2022/04/19 Redis