论坛首页 Web前端技术论坛

使用JS清空fileupload 控件值

浏览 10880 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-10-23  
在平时项目开发中会有上传文件的功能,一般在前端会通过JS来判断上传文件是否属于指定的文件类型,如果不属于就将控件值清空! (当然你也可以不清空)

有一种方法可以很简单的装文件上传组件的值清空,代码如下:

var file=document.getElementById("fileupload");
file.outerHTML=file.outerHTML
   发表时间:2009-10-23  
对应的 form.reset() 即可
0 请登录后投票
   发表时间:2009-10-23  
outerHTML不是所有浏览器都支持

2搂的方案 也许不符合楼主的原意 因为楼主可能只想清空单独的一个fileuoload
reset会对所有form中的元素生效.
而且reset 和 清空 是两个概念.

我的做法是remove fileUpload, 然后再重新创建一个一摸一样的. 
4 请登录后投票
   发表时间:2009-10-23  
fins 写道
outerHTML不是所有浏览器都支持

2搂的方案 也许不符合楼主的原意 因为楼主可能只想清空单独的一个fileuoload
reset会对所有form中的元素生效.
而且reset 和 清空 是两个概念.

我的做法是remove fileUpload, 然后再重新创建一个一摸一样的. 


楼上正解,呵呵,在做项目的时候也碰到了相同的问题,就是将原有fileupload的input节点删除,重新创建一个
0 请登录后投票
   发表时间:2009-10-26  
恩。的确是remove fileUpload, 然后再重新创建一个比较好,至少不至于在多浏览器间发生不兼容的问题。  谢谢大家的意见!
1 请登录后投票
   发表时间:2009-10-29  
document.getElementById("**").select();
document.execCommand("delete");


用这两句就行了
0 请登录后投票
   发表时间:2009-10-29  
kendy630314511 写道
document.getElementById("**").select();
document.execCommand("delete");


用这两句就行了


1, 还不如form.reset()
2, 兼容性比outerHTML还差
0 请登录后投票
   发表时间: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"));

又试了试这样  结果一切正常。。。
测试的时候没有添加任何其他的库所以也应该不存在$重复问题
晕啊 这到底是为什么 路过的大侠谁能告诉我?
0 请登录后投票
   发表时间: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>
这样就行了,各浏览器都支持的
0 请登录后投票
   发表时间: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'));

0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics