清空file文件域的方法

我们在实际应用中经常希望能把文件域给清空,比如使用change事件时,因为不清空再次选择同一文件时将不在触发change事件。

但是在IE中,由于安全设置的原因,是不允许更改文件域的值的,也就是不能使用val('')设置为空。

因此我们就只能换个思路,把这个input元素复制一个,然后将原来的删除。在IE下复制元素的时候,其中的值是不会被复制的,所以就达到了清空文件域的目的了。而在Firefox、Chrome下,其中的值也会被一同复制,但可以使用val('')来清空。

那么我们来简单些个插件吧:

$.fn.clearFileInput = function() {//清空file HTML控件的值
	return this.each(function() {
		if (/MSIE/.test(navigator.userAgent)) {
			$(this).replaceWith($(this).clone(true));
		} else {
			$(this).val('');
		}       
	});
};

以后就清空文件域就可以这样使用啦:

$("#myfilefield1,#myfilefield2").clearFileInput();


出处:http://www.zhaiqianfeng.com    
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4618494.html