站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Javascript 专题可以编辑的Select (第二版)

可以编辑的Select (第二版)

摘要: 可以编辑的Select (第二版)


观看效果

<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="";

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 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>

</td> </tr> <tr> <td vAlign=top align=left height="100%">
↑返回目录
前一篇: showModalDialog()、showModelessDialog()方法使用详解
后一篇: IE6.0打印机制解析