}else{
  alert("提示:文件格式错误!");
  document.getElementById("upimages").value="";

解决方案 »

  1.   

    如果类型是 type="file" 则该 input 的 value 为只读属性
    不能赋值,据说是为了安全
      

  2.   

    因为LZ的要求特殊,可以用另外方法达到要求:
    删除原来的 input file ,新建一个
    <html> 
    <head>
    <title></title> 
    <script>
    function preview(th,imgDiv,size){ 
    if(!th.value) return; 
    var patn = /\.jpg$|\.jpeg$|\.gif$/i;  
    if(patn.test(th.value)){    
    var y = document.getElementById(imgDiv); 
    if(y){ 
    y.setAttribute('src','file://localhost/'+th.value); 
    if(size)y.setAttribute('width',size); 
    }else alert("提示:浏览器异常"); 
    }else{ 
    alert("提示:文件格式错误!");
    document.getElementById("div1").innerHTML = 
    "<input name = \"upimages\" type=\"file\" id=\"upimages\" size=\"50\" onChange=\"preview(this,'imgDiv')\"/>";

    }
    </script>
    </head> 
    <body>
    <div id="div1">
    <input name = "upimages" type="file" id="upimages" size="50" onChange="preview(this,'imgDiv')"/> 
    </div>
    <img src="../productpic/none.gif" name="imgDiv" width="150" height="150" id="imgDiv"/>
    </body>
    </html> 
      

  3.   

    //清空File类型input的值
    function clearFileInput(file){
        var form=document.createElement('form');
        document.body.appendChild(form);
        var pos = file.nextSibling;
        form.appendChild(file);
        form.reset();
        pos.parentNode.insertBefore(file, pos);
        document.body.removeChild(form);
    }