给 cpp2017(慕白兄)另开一 100 分贴:总是已经解决一大半了!补分!关于 javascript 校验的问题!
原贴:
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>