WEB开发网
开发学院网页设计JavaScript 可以编辑的Select (第二版) 阅读

可以编辑的Select (第二版)

 2007-11-27 17:43:49 来源:WEB开发网   
核心提示:观看效果<script src=editableselect.js></script><select id=EditableSelect><option>可以编辑的select第二版</option><option>Bencalie制作</o

观看效果

<script src=editableselect.js></script>
<select id=EditableSelect>
<option>可以编辑的select第二版</option>
<option>Bencalie制作</option>
</select>

=======================
editableselect.js

window.onload=function(){
 var objSelect=EditableSelect
 var obj=document.all.EditableSelect
 getTop=obj.offsetTop;
 getLeft=obj.offsetLeft;
 while(objSelect=objSelect.offsetParent){
 getTop+=objSelect.offsetTop;
 getLeft+=objSelect.offsetLeft;
 }

 var oNewItem=document.createElement(OBJECT); 
 document.body.insertBefore(oNewItem);
 oNewItem.outerHTML=<object id=editable style=\z-index:2;position:absolute\ type=\text/x-scriptlet\ data=\addin2.htm\></object>;

 editable.style.left=getLeft+1
 editable.style.top=getTop+1
 editable.style.width=obj.offsetWidth-19
 editable.style.height=obj.offsetHeight-3
 
 obj.onchange=function(){editable.str(obj.options[obj.selectedIndex].text)}
 obj.onresize=function(){editable.style.width=obj.offsetWidth-19}
}

function addNewOption(value){
 EditableSelect.options[EditableSelect.length]=new Option(value,value)
}

=======================
addin2.htm

<script language=vbs>
function public_str(theStrIn)
 strIn.value=theStrIn
end function
</script>
<body leftmargin=0 topmargin=0>
<script language=javascript>
function check(){
var obj=parent.document.all.EditableSelect
var theValue=document.all.strIn.value.replace(/^\s*/g,).replace(/\s*$/g,)
if(event.keyCode==13){
if(theValue!=){
for(i=0;i<obj.length;i++)
 if(obj.options[i].text==theValue){
 alert(该选项已经存在!);
 document.all.strIn.focus();
 document.all.strIn.value=;
 return;
 }
parent.addNewOption(theValue) 
}
document.all.strIn.value=
}
}
</script>
<input id=strIn style=border:0;width:100%;height:100%;padding-top:2px onkeydown=check()>
</body>

Tags:可以 编辑 Select

编辑录入:coldstar [复制链接] [打 印]
赞助商链接