上傳文件時,需要驗證文件格式,不符合規則就不允許上傳,必須清空<input type="file">字段的值,否則還是會上傳到服務器!
1、 網上各位兄弟提出了方法A,刪除掉原來的<input type="file">元素,再馬上新添加一個同名同id的file字段
<div id="a"><input type="file"></div> 像這樣 file字段嵌套在div里面 清空div的innerHTML(或清空他子節點) 再新增innerHTML(或 子節點)
這種比較麻煩,必須改動HTML代碼 不予考慮。
2、直接上代碼,不廢話!如下:
經測試,IE 火狐 谷歌都有效,僅作整理收藏,如果能幫到其他人就更好了!
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()"/>

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

經測試,IE 火狐 谷歌都有效,僅作整理收藏,如果能幫到其他人就更好了!