var obj = document.getElementById("upfile");
obj.outerHTML = obj.outerHTML; 其中upfile是我定义的file类型的控件,确实可以实现清空,不过我不大明白obj.outerHTML = obj.outerHTML; 是如何实现清空的?

解决方案 »

  1.   

    obj.select();
    obj.selection.clear()
      

  2.   

    已试过楼主的方法不行的哦<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script language="javascript">
    function a()
    {
    var obj = document.getElementById("upfile");
            obj.outerHTML = obj.outerHTML; 
    }
    </script>
    </head><body>
    <h1 style="font-size:9px">1121</h1>
    <form id="form1" name="form1" enctype="multipart/form-data" method="post" action="">
      <label>
      <input type="file" name="file" />
      </label>
      <label>
      <input type="button" name="Submit" value="提交" onclick="a();" />
      </label>
    </form>
    </body>
    </html>
      

  3.   

    outerHTML中不包含你运行时为file添加的值
    不过我觉得这样<input type="file" onchange="checkExt(this)"/><script type="text/javascript"> 
    var checkExt=function(file) {
        if(!(/(?:jpg|gif)$/i.test(file.value))) {
            alert("只允许上传jpg和gif的图片");
            if(window.ActiveXObject) {//for IE
                file.select();//select the file ,and clear selection
                document.selection.clear();
            } else if(window.opera) {//for opera
                file.type="text";file.type="file";
            } else file.value="";//for FF,Chrome,Safari
        } else {
            alert("ok");//or you can do nothing here.
        }
    };
    </script>
      

  4.   

    我这边outerHTML包含了选中的value值了.
      

  5.   

    你把outerHTML的值输出就知道,并没有你添加的value这个属性
      

  6.   

    oh,明白 了,input file的value属性不可写,使用outerHTML赋值时 value属性丢失了
      

  7.   

    那照你这么说,我只要给outerHTML赋值就相当于给它清空了?
      

  8.   

    function ResetFile(file){
        file.value = "";//ff chrome safari
        if ( file.value ) {
            if ( $$B.ie ) {//ie
                with(file.parentNode.insertBefore(document.createElement('form'), file)){
                    appendChild(file); reset(); removeNode(false);
                }
            } else {//opera
                file.type = "text"; file.type = "file";
            }
        }
    }
    详细参考这里的file的reset
      

  9.   

    这 我不是让你们给我新的清空file的值的方法,我只想知道我这方法
    var obj = document.getElementById("upfile");
            obj.outerHTML = obj.outerHTML; 
    为什么能清空file的值,我试过是可以的
      

  10.   

    outerHTML不是清空file而是重新写一个file
    而有一file的value是不可写的所以默认空值了