上传文件时,需要验证文件格式,不符合规则就不允许上传,必须清空<input type="file">字段的值,否则还是会上传到服务器!

1、 网上各位兄弟提出了方法A,删除掉原来的<input type="file">元素,再马上新添加一个同名同id的file字段
<div id="a"><input type="file"></div>  像这样 file字段嵌套在div里面 清空div的innerHTML(或清空他子节点) 再新增innerHTML(或 子节点)
这种比较麻烦,必须改动HTML代码 不予考虑。


2、直接上代码,不废话!如下:
 1 <script language="javascript">
 2 if(window.HTMLElement) {
 3    HTMLElement.prototype.__defineSetter__("outerHTML",function(sHTML){
 4        var r=this.ownerDocument.createRange();
 5        r.setStartBefore(this);
 6        var df=r.createContextualFragment(sHTML);
 7        this.parentNode.replaceChild(df,this);
 8        return sHTML;
 9        }
);
10
11    HTMLElement.prototype.__defineGetter__("outerHTML",function(){
12     var attr;
13        var attrs=this.attributes;
14        var str="<"+this.tagName.toLowerCase();
15        for(var i=0;i<attrs.length;i++){
16            attr=attrs[i];
17            if(attr.specified)
18                str+=" "+attr.name+'="'+attr.value+'"';
19            }

20        if(!this.canHaveChildren)
21            return str+">";
22        return str+">"+this.innerHTML+"</"+this.tagName.toLowerCase()+">";
23        }
);
24        
25 HTMLElement.prototype.__defineGetter__("canHaveChildren",function(){
26  switch(this.tagName.toLowerCase()){
27            case "area":
28            case "base":
29         case "basefont":
30            case "col":
31            case "frame":
32            case "hr":
33            case "img":
34            case "br":
35            case "input":
36            case "isindex":
37            case "link":
38            case "meta":
39            case "param":
40            return false;
41        }

42        return true;
43
44     }
);
45}

46
47
48 function clearFile(){
49 var obj = document.getElementById("fileID");
50 obj.outerHTML = obj.outerHTML;
51 }

52 </script>
53
54<input type="file" name="fileName" id="fileID"><input type="button" value="清空" onclick="clearFile()"/>

经测试,IE 火狐 谷歌都有效,仅作整理收藏,如果能帮到其他人就更好了!


只有注册用户登录后才能发表评论。


网站导航:
 

posts - 0, comments - 21, trackbacks - 0, articles - 101

Copyright © H2O