![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
如何改变FileUpLoad控件内容??
1个回答
展开全部
对于fileupload,它的file值是只读的,我们没有办法去改变它,不过一些变相的方法还是可以的。方法一:
上传控件基础知识说明:
上传控件(<input
type="file"/)用于在客户端浏览并上传文件,用户选取的路径可以由value属性获取,但value属性是只读的,不能通过javascript来赋值,这就使得不能通过value=""语句来清空它。很容易理解为什么只读,如果可以随意赋值的话,那么用户只要打开你的网页,你就可以随心所欲的上传他电脑上的文件了,呵呵,毕竟表单的submi是可以随便调用的。
仔细想想,上传控件是不是任何时候都不可能被清空呢?答案是否,form.reset()方法能够重置所有得表单元素。只要调用inputFile.form.reset(),那么上传控件的值就清空了,不要担心它被恢复为某个默认值,value是只读的,你不能为它设置某个初始值。
然而这个方法还是不够优雅,沿着思路继续想下去,不难得到改进的方法:创建一个新的form,把上传控件临时放过来,再调用这个form的reset方法,完工之后再把上传控件弄回去。这个form无需进入DOM结构便能正常工作,所以不用担心会对界面有任影响。下面给出函数实现,经过验证工作良好,呵呵。程序代码
//清空文件上传框
function clearFileInput(file){varform=document.createElement('form');
document.body.appendChild(form);
//记住file在旧表单中的的位置varpos=file.nextSibling;
form.appendChild(file);
form.reset();
pos.parentNode.insertBefore(file,pos);
document.body.removeChild(form);}
方法2 用这个方法不能保存input的样式
比较简单了 重新建立个 file 就可以了。程序代码<spanid=span1<inputname=abtype=file</span<input
name=button1
type=buttonvalue="按"
onclick=show()<script
language=javascriptfunctionshow(){
document.getElementByIdx("span1").innerHTML="<inputname=ab
type=file";}
</script
方法3,用这个方法可以保存input的样式<input
name=button1
type=buttonvalue="按"
onclick=show()<script
language=javascriptfunctionshow(){
var e=document.getElementByIdx("span1");
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询