上傳文件時,需要驗證文件格式,不符合規則就不允許上傳,必須清空<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

          主站蜘蛛池模板: 酉阳| 西乌珠穆沁旗| 通城县| 封开县| 新昌县| 石柱| 梨树县| 曲水县| 瑞金市| 湄潭县| 台安县| 象山县| 九台市| 三亚市| 丹寨县| 九龙坡区| 四子王旗| 呼和浩特市| 西贡区| 永川市| 滨州市| 扶余县| 富蕴县| 乐山市| 嘉兴市| 安西县| 光山县| 黔东| 武冈市| 古交市| 南乐县| 讷河市| 德江县| 张掖市| 郧西县| 湘潭市| 惠来县| 武宣县| 隆安县| 梁河县| 乃东县|