锁定老帖子 主题:使用JS清空fileupload 控件值
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-10-23
有一种方法可以很简单的装文件上传组件的值清空,代码如下: var file=document.getElementById("fileupload"); file.outerHTML=file.outerHTML 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-10-23
对应的 form.reset() 即可
|
|
返回顶楼 | |
发表时间:2009-10-23
outerHTML不是所有浏览器都支持
2搂的方案 也许不符合楼主的原意 因为楼主可能只想清空单独的一个fileuoload reset会对所有form中的元素生效. 而且reset 和 清空 是两个概念. 我的做法是remove fileUpload, 然后再重新创建一个一摸一样的. |
|
返回顶楼 | |
发表时间:2009-10-23
fins 写道 outerHTML不是所有浏览器都支持
2搂的方案 也许不符合楼主的原意 因为楼主可能只想清空单独的一个fileuoload reset会对所有form中的元素生效. 而且reset 和 清空 是两个概念. 我的做法是remove fileUpload, 然后再重新创建一个一摸一样的. 楼上正解,呵呵,在做项目的时候也碰到了相同的问题,就是将原有fileupload的input节点删除,重新创建一个 |
|
返回顶楼 | |
发表时间:2009-10-26
恩。的确是remove fileUpload, 然后再重新创建一个比较好,至少不至于在多浏览器间发生不兼容的问题。 谢谢大家的意见!
|
|
返回顶楼 | |
发表时间:2009-10-29
document.getElementById("**").select();
document.execCommand("delete"); 用这两句就行了 |
|
返回顶楼 | |
发表时间:2009-10-29
kendy630314511 写道 document.getElementById("**").select();
document.execCommand("delete"); 用这两句就行了 1, 还不如form.reset() 2, 兼容性比outerHTML还差 |
|
返回顶楼 | |
发表时间:2009-10-30
xht314 写道 在平时项目开发中会有上传文件的功能,一般在前端会通过JS来判断上传文件是否属于指定的文件类型,如果不属于就将控件值清空! (当然你也可以不清空)
有一种方法可以很简单的装文件上传组件的值清空,代码如下: var file=document.getElementById("fileupload"); file.outerHTML=file.outerHTML //f为file控件的id var $=document.getElementById; document.getElementById("f").outerHTML?$("f").outerHTML=$("f").outerHTML:document.getElementById("f").value=""; 这段代码可以兼容ie和firefox(至少3.5支持,别的没试过)。 是不是觉得我那段代码太长了?明明定义了var $=document.getElementById;为什么没有用? 唉 firefox又一次的征服了我 为什么var $=document.getElementById;这段代码在火狐中不能用呢? 比如alert($("f"))在firefox中没有反应。 难道这种写法:var $=document.getElementById;有问题? function test(id){ return id; }; var t=test; alert(t("test")); 又试了试这样 结果一切正常。。。 测试的时候没有添加任何其他的库所以也应该不存在$重复问题 晕啊 这到底是为什么 路过的大侠谁能告诉我? |
|
返回顶楼 | |
发表时间:2009-10-30
<span id='uploadSpan'>
<input type="file"> </span> <script language="JavaScript"> var html=document.getElementById('uploadSpan').innerHTML; function resetFile(){ document.getElementById('uploadSpan').innerHTML=html; } </script> 这样就行了,各浏览器都支持的 |
|
返回顶楼 | |
发表时间:2009-10-30
最后修改:2009-10-30
huangxuan2046 写道 xht314 写道 在平时项目开发中会有上传文件的功能,一般在前端会通过JS来判断上传文件是否属于指定的文件类型,如果不属于就将控件值清空! (当然你也可以不清空)
有一种方法可以很简单的装文件上传组件的值清空,代码如下: var file=document.getElementById("fileupload"); file.outerHTML=file.outerHTML //f为file控件的id var $=document.getElementById; document.getElementById("f").outerHTML?$("f").outerHTML=$("f").outerHTML:document.getElementById("f").value=""; 这段代码可以兼容ie和firefox(至少3.5支持,别的没试过)。 是不是觉得我那段代码太长了?明明定义了var $=document.getElementById;为什么没有用? 唉 firefox又一次的征服了我 为什么var $=document.getElementById;这段代码在火狐中不能用呢? 比如alert($("f"))在firefox中没有反应。 难道这种写法:var $=document.getElementById;有问题? function test(id){ return id; }; var t=test; alert(t("test")); 又试了试这样 结果一切正常。。。 测试的时候没有添加任何其他的库所以也应该不存在$重复问题 晕啊 这到底是为什么 路过的大侠谁能告诉我? document.getElementById是内置的JS方法,FF下不能进行这种操作。 按这样吧。。。 var $ = function(obj) { return document.getElementById(obj); } alert($('a')); |
|
返回顶楼 | |