可编辑下拉框的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 相关文章推荐
微博@符号的用户名提示效果。(想@到谁?)
Nov 05 Javascript
解决遍历时Array.indexOf产生的性能问题
Jul 03 Javascript
在ASP.NET中使用JavaScript脚本的方法
Nov 12 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
Mar 17 Javascript
7个让JavaScript变得更好的注意事项
Jan 28 Javascript
浅谈JavaScript中的对象及Promise对象的实现
Nov 15 Javascript
基于d3.js实现实时刷新的折线图
Aug 03 Javascript
浅谈js中的三种继承方式及其优缺点
Aug 10 Javascript
Vue.js动态添加、删除选题的实例代码
Sep 30 Javascript
JavaScript获取服务器时间的方法详解
Dec 11 Javascript
浅谈Node Inspector 代理实现
Oct 19 Javascript
vue使用 better-scroll的参数和方法详解
Jan 25 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
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
PHP+MySQL删除操作实例
2015/01/21 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
2013/01/17 Javascript
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
浅谈JavaScript的事件
2015/02/27 Javascript
javascript删除数组重复元素的方法汇总
2015/06/24 Javascript
在JavaScript中使用JSON数据
2016/02/15 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
2017/06/12 jQuery
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
JavaScript设计模式之职责链模式应用示例
2018/08/07 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
2018/09/19 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
vue实现登录、注册、退出、跳转等功能
2020/12/23 Vue.js
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
解决Django no such table: django_session的问题
2020/04/07 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
机电一体化毕业生求职信
2013/11/02 职场文书
教师旷工检讨书
2014/01/18 职场文书
计算机网络专业求职信
2014/06/05 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
村党组织公开承诺书
2015/04/30 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书
tree shaking对打包体积优化及作用
2022/07/07 Java/Android