可編輯下拉框的2種實(shí)現(xiàn)方式
更新時(shí)間:2014年06月13日 09:20:03 投稿:whsnow
下拉框想必大家都有見過,可編輯的下拉框就不多見了吧,本例為大家介紹個(gè)不錯的實(shí)現(xiàn)方法,需要的朋友可以參考下
可編輯下拉框-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];
/*要轉(zhuǎn)換的下拉框*/
}
/*初始化對象*/
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()
}
/*初始化結(jié)束*/
////////對象事件定義///////
combox.prototype.find=function(){
/*當(dāng)搜索到輸入框的值時(shí),下拉框自動定位*/
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()};
}
////////對象事件結(jié)束///////
/*公用定位函數(shù)(獲取控件絕對坐標(biāo))*/
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
}
/*結(jié)束*/
</script>
<script language="javascript">
var a=new combox("a","fason")
a.init()
</script>
</body>
</html>
復(fù)制代碼 代碼如下:
<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
復(fù)制代碼 代碼如下:
<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];
/*要轉(zhuǎn)換的下拉框*/
}
/*初始化對象*/
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()
}
/*初始化結(jié)束*/
////////對象事件定義///////
combox.prototype.find=function(){
/*當(dāng)搜索到輸入框的值時(shí),下拉框自動定位*/
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()};
}
////////對象事件結(jié)束///////
/*公用定位函數(shù)(獲取控件絕對坐標(biāo))*/
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
}
/*結(jié)束*/
</script>
<script language="javascript">
var a=new combox("a","fason")
a.init()
</script>
</body>
</html>
相關(guān)文章
JS實(shí)現(xiàn)下拉菜單列表與登錄注冊彈窗效果
下面小編就為大家?guī)硪黄狫S實(shí)現(xiàn)下拉菜單列表與登錄注冊彈窗效果。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08javascript游戲開發(fā)之《三國志曹操傳》零部件開發(fā)(三)情景對話中仿打字機(jī)輸出文字
前兩講我告訴了大家如何使人物移動,那么今天我們就來看看如何實(shí)現(xiàn)仿《三國志曹操傳》人物情景對話,感興趣的朋友可以了解下,希望本文對你有所幫助2013-01-01layui清空,重置表單數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇layui清空,重置表單數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09兼容IE FF Opera的javascript最短的拖動代碼
關(guān)于拖動的代碼太多了要么復(fù)雜要么不兼容,在這就不多說了. 這里提供個(gè)簡潔的。2008-01-01document.createElement("A")比較不錯的屬性
document.createElement("A")比較不錯的屬性...2007-08-08JavaScript中的事件監(jiān)聽詳細(xì)介紹
這篇文章主要給大家介紹了關(guān)于JavaScript中事件監(jiān)聽的相關(guān)資料,在前端開發(fā)過程中我們經(jīng)常會遇到給頁面元素添加事件的問題,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08每天一篇javascript學(xué)習(xí)小結(jié)(Boolean對象)
這篇文章主要介紹了javascript中的Boolean對象知識點(diǎn),對Boolean對象的基本使用方法進(jìn)行解釋,一段很詳細(xì)的代碼介紹,感興趣的小伙伴們可以參考一下2015-11-11js實(shí)現(xiàn)ArrayList功能附實(shí)例代碼
ArrayList功能想必大家都有所了解吧,本文使用js實(shí)現(xiàn)ArrayList功能并附實(shí)例代碼,想學(xué)習(xí)的朋友可以看看2014-10-10