可编辑下拉框的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 限制数字 js限制输入实现代码
Dec 04 Javascript
3种不同的ContextMenu右键菜单实现代码
Nov 03 Javascript
浅谈Javascript中的Label语句
Dec 14 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
Dec 18 Javascript
js 原型对象和原型链理解
Feb 09 Javascript
canvas实现简易的圆环进度条效果
Feb 28 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
Jul 17 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
Feb 08 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
May 26 jQuery
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
Aug 25 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
Mar 01 Javascript
JS co 函数库的含义和用法实例总结
Apr 08 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
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
CI框架中site_url()和base_url()的区别
2015/01/07 PHP
php+mysql数据库查询实例
2015/01/21 PHP
详解php中的implements 使用
2017/06/13 PHP
javascript数组组合成字符串的脚本
2021/01/06 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
javascript中apply、call和bind的使用区别
2016/04/05 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
2016/04/26 Javascript
jQuery布局组件EasyUI Layout使用方法详解
2017/02/28 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
Python 2.7.x 和 3.x 版本的重要区别小结
2014/11/28 Python
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
python如何实现异步调用函数执行
2019/07/08 Python
python中可以声明变量类型吗
2020/06/18 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
有个性的自我评价范文
2013/11/15 职场文书
中医临床专业自我鉴定范文
2014/01/15 职场文书
大学生自我鉴定书
2014/03/24 职场文书
审美与表现自我评价
2015/03/09 职场文书
关于环保的广播稿
2015/12/17 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书
yolov5返回坐标的方法实例
2022/03/17 Python
Elasticsearch 聚合查询和排序
2022/04/19 Python