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

          主站蜘蛛池模板: 刚察县| 江源县| 陆河县| 玉山县| 岐山县| 上犹县| 南通市| 玛纳斯县| 东兴市| 磐石市| 郸城县| 蓬莱市| 湖南省| 左贡县| 昌平区| 灵川县| 中西区| 苗栗县| 连城县| 洱源县| 新宁县| 灯塔市| 宜黄县| 晋州市| 大竹县| 宁都县| 吐鲁番市| 广德县| 龙江县| 彭水| 铜山县| 马鞍山市| 郑州市| 奇台县| 沅江市| 丰顺县| 伊宁县| 中卫市| 绩溪县| 修水县| 东台市|