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

 更新时间:2014年06月13日 09:20:03   投稿:whsnow  
下拉框想必大家都有见过,可编辑的下拉框就不多见了吧,本例为大家介绍个不错的实现方法,需要的朋友可以参考下
可编辑下拉框-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>

相关文章

  • 微信小程序按钮去除边框线分享页面功能

    微信小程序按钮去除边框线分享页面功能

    这篇文章主要介绍了微信小程序按钮去除边框线分享页面功能,文中通过一段简单的代码给大家介绍了微信小程序的button去边框的方法,感兴趣的朋友跟随脚本之家小编一起看看吧
    2018-08-08
  • js版扫雷游戏

    js版扫雷游戏

    这篇文章主要为大家详细介绍了js版扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • js利用与或运算符优先级实现if else条件判断表达式

    js利用与或运算符优先级实现if else条件判断表达式

    利用与或运算符优先级实现if else运算,让你的代码更精简。
    2010-04-04
  • 用Fundebug插件记录网络请求异常的方法

    用Fundebug插件记录网络请求异常的方法

    这篇文章主要介绍了用Fundebug插件记录网络请求异常的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • JavaScript中使用typeof运算符需要注意的几个坑

    JavaScript中使用typeof运算符需要注意的几个坑

    这篇文章主要介绍了JavaScript中使用typeof运算符需要注意的几个坑,本文总结了4个使用typeof运算符要注意的问题,需要的朋友可以参考下
    2014-11-11
  • HTML+JS实现猜拳游戏的示例代码

    HTML+JS实现猜拳游戏的示例代码

    这篇文章主要为大家详细介绍了如何利用HTML+CSS+JS编写一个猜拳游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Js+XML 操作

    Js+XML 操作

    Js+XML 操作...
    2006-09-09
  • js格式化货币数据实现代码

    js格式化货币数据实现代码

    货币数据想要一某种形式在页面中显示的话,首先是必须要格式化的,下面为大家介绍下具体的格式化代码,感兴趣的朋友可以参考下
    2013-09-09
  • axios对外出口API的设计方法

    axios对外出口API的设计方法

    本文我们讲解了 axios 对外出口 API 是如何设计的,我们首先介绍了内部 Axios 类的实现,这是 axios 核心逻辑所在,其次为了让出口 API 更好使用,最后又在增加了 create() 方法,文中通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-05-05
  • JS cookie中文乱码解决方法

    JS cookie中文乱码解决方法

    本篇文章主要是对JS中的cookie中文乱码解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01

最新评论