原贴:
http://community.csdn.net/Expert/topic/5328/5328600.xml?temp=.3653681
老大的这个回复非常有技术性,已经实现了无刷新添加项目到 listbox :
<DIV id= "div1 ">
<INPUT ID= "File1 " TYPE= "file " NAME= "File1 " RUNAT= "server "> <INPUT TYPE= "button " VALUE= "Button " onclick= "javascript:AddFile(); ">
<ASP:LISTBOX id= "ListBox1 " runat= "server "> </ASP:LISTBOX>
<ASP:BUTTON id= "Button1 " runat= "server " Text= "Button "> </ASP:BUTTON> </FONT>
</DIV>
<SCRIPT language= "javascript ">
<!--
function AddFile()
{
var file = document.getElementById( "div1 ").firstChild;
if(file.value == " ")
{
alert( "请选择文件! ");
return;
}
var o = new Option();
var ary = file.value.split( "\\ ");
var filename = ary[ary.length-1];
o.innerText = filename;
o.value = filename;
document.getElementById( "ListBox1 ").appendChild(o);
file.style.display = "none ";
var f = document.createElement( "input ");
f.type = "file ";
f.name = "file "
div1.insertBefore(f,div1.firstChild);
}
//-->
</SCRIPT>
现在有一个问题,就是我想实现一个 点中 listbox 中的一个项后,再点击一个按钮能实现删除这个 listbox 选中项的功能,就是再写一个与 function AddFile()
对应的 function RemoveFile() 的 javascript 函数。
这个问题如果解决了,就完美了!!
------解决方案--------------------------------------------------------
<SCRIPT language= "javascript "> <!-- function AddFile() { var file = document.getElementById( "div1 ").firstChild; if(file.value == " ") { alert( "请选择文件! "); return; } var o = new Option(); var ary = file.value.split( "\\ "); var filename = ary[ary.length-1]; if(CheckOptionsExists(filename,document.getElementById( "ListBox1 "))) { alert( "文件已经存在列表中! "); return; } var f = document.createElement( "input "); f.type = "file "; f.name = "file " div1.insertBefore(f,div1.firstChild); o.innerText = filename; o.value = f.uniqueID; document.getElementById( "ListBox1 ").appendChild(o); file.style.display = "none "; } function RemoveFile() { var lst = document.getElementById( "ListBox1 "); if(lst.selectedIndex == -1) { alert( "请选择要删除的附件! "); return; } var id = lst.value; div1.removeChild(document.all[id]); lst.removeChild(lst.options[lst.selectedIndex]); } //检查选项是否存在. function CheckOptionsExists(value,ddl) { for(var i=0;i <ddl.options.length;i++) { if(ddl.options[i].innerText == value) { return true; } } return false; }//--> </SCRIPT>
------解决方案--------------------------------------------------------
<DIV id= "div1 "> <INPUT ID= "File1 " TYPE= "file " NAME= "File1 " runat= "server "> <INPUT TYPE= "button " VALUE= "添加附件 " onclick= "javascript:AddFile(); "> <INPUT TYPE= "button " VALUE= "删除附件 " onclick= "javascript:RemoveFile(); "> <ASP:LISTBOX id= "ListBox1 " Width= "200px " Height= "100px " runat= "server "> </ASP:LISTBOX> <ASP:BUTTON id= "Button1 " runat= "server " Text= "保存 " Width= "60px "> </ASP:BUTTON> </DIV>