可编辑下拉框的2种实现方式

作者:whsnow 时间:2024-04-22 13:08:08 

可编辑下拉框-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>
标签:可编辑,下拉框
0
投稿

猜你喜欢

  • JS如何实现form表单登录验证并使用MD5加密详解

    2024-04-10 10:38:56
  • 使用Python下载Bing图片(代码)

    2023-11-05 00:42:59
  • WAP中的ASP技术

    2008-05-18 13:30:00
  • 从零开始写jQuery框架

    2008-12-24 13:37:00
  • Python的命令行参数实例详解

    2023-06-11 09:05:45
  • 10行Python代码实现Web自动化管控的示例代码

    2021-05-30 17:01:05
  • 解密ThinkPHP3.1.2版本之独立分组功能应用

    2023-11-20 09:06:02
  • ASP中Cache技术的应用

    2007-09-28 12:41:00
  • Win10下为VSCode配置LaTex编辑器的方法

    2023-08-27 17:20:07
  • 跟我学习javascript的闭包

    2024-04-23 09:11:51
  • Python比较配置文件的方法实例详解

    2021-11-27 05:54:35
  • Qt5 实现主窗口状态栏显示时间

    2022-05-29 23:54:45
  • pytorch中tensor的合并与截取方法

    2022-02-11 14:16:58
  • 聚焦 DreamWeaver MX 2004

    2010-03-25 12:22:00
  • Python使用Matplotlib实现雨点图动画效果的方法

    2023-02-04 10:32:05
  • Python常用GUI框架原理解析汇总

    2021-05-02 05:13:35
  • pdf论文中python画的图Type 3 fonts字体不兼容的解决方案

    2021-01-21 01:05:15
  • 妙用dw图层与表格进行网页布局

    2009-07-14 21:57:00
  • 20个Python常用技巧分享

    2023-10-21 22:10:21
  • vue实现简单的登录弹出框

    2024-05-21 10:30:12
  • asp之家 网络编程 m.aspxhome.com