可编辑下拉框的2种实现方式
<divstyle="position:relative;"> <selectstyle="width:120px;"onchange="document.getElementById('input').value=this.value"> <optionvalue="A类">A类</option> <optionvalue="B类">B类</option> <optionvalue="C类">C类</option> <optionvalue="D类">D类</option> </select> <inputid="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> <metaname="GENERATOR"content="MicrosoftFrontPage5.0"> <metaname="ProgId"content="FrontPage.Editor.Document"> <metahttp-equiv="Content-Type"content="text/html;charset=gb2312"> <title>可编辑下拉框</title> </head> <body> <tablestyle="border:2pxoutset;background-color:#d2e8FF"width="250"height="100"align="center"> <tr> <tdwidth="60%"height="30"align="center"> <selectname="fason"> <optionvalue="可编辑下拉框">可编辑下拉框</option> <optionvalue="作者">作者</option> </select> </td> </tr> </table> <scriptlanguage="javascript"> functioncombox(obj,select){ this.obj=obj this.name=select; this.select=document.getElementsByName(select)[0]; /*要转换的下拉框*/ } /*初始化对象*/ combox.prototype.init=function(){ varinputbox="<inputname='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=newFunction(this.obj+".change()") this.change() } /*初始化结束*/ ////////对象事件定义/////// combox.prototype.find=function(){ /*当搜索到输入框的值时,下拉框自动定位*/ varinputbox=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事件*/ varinputbox=document.getElementsByName("combox_"+this.name)[0] inputbox.value=this.select.options[this.select.selectedIndex].text; with(inputbox){select();focus()}; } ////////对象事件结束/////// /*公用定位函数(获取控件绝对坐标)*/ functiongetL(e){ varl=e.offsetLeft; while(e=e.offsetParent)l+=e.offsetLeft; returnl } functiongetT(e){ vart=e.offsetTop; while(e=e.offsetParent)t+=e.offsetTop; returnt } /*结束*/ </script> <scriptlanguage="javascript"> vara=newcombox("a","fason") a.init() </script> </body> </html>