<input name=f id=f type=file onchange="document.getElementById('t').value=this.value">
<img src="..." onclick="document.getElementById('f').click()" style="cursor:hand;">
<input name=t id=t readonly>

解决方案 »

  1.   

    <input type=text  id="filename">
    <img onclick=loadFile()>
    <script>
    function loadFile()
    {
    var e = document.createElement("input");
    e.type="file";
    document.body.appendChild(e);
    e.click();
    eval("filename").value=e.value;
    }
    </script>
      

  2.   

    <input type=text  id="filename">
    <img onclick=loadFile()>
    <script>
    function loadFile()
    {
    var e = document.createElement("input");
    e.type="file";
    document.body.appendChild(e);
    e.click();
    eval("filename").value=e.value;
    document.body.removeChild(e);
    }
    </script>
      

  3.   

    太感谢kving了,太谢谢你了。
      

  4.   

    kving() 的做法只能模拟达到这种功能,选择的文件是不能上传的。
      

  5.   

    是啊,已经发现了。真悲惨啊,没办法在本质上改变file控件的样式啊。
      

  6.   

    http://www.blueidea.com/bbs/NewsDetail.asp?id=1227402
      

  7.   

    以下代码看起来很像,但是 form.submit() 时出于安全原因 IE 会自动清空上传控件中的路径!
    因此任务不可能完成,如果可以的话,IE 就是黑客软件了!<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> New Document </title>
    <meta name="Generator" content="EditPlus">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <style>
    .uploadFile {
        visibility: hidden;
    }
    </style>
    </head><body>
    <form name="Form1" method="post" action="ImageUploaderTester.aspx" id="Form1">
    <input type="image" id="uploadImage" src="" alt="Upload">
    <input type="text" id="uploadFilePath" readonly size="80">
    <input type="file" id="upload" class="uploadFile" width="0px">
    <script language="JavaScript">
    <!--
    var upload = document.getElementById("upload");
    var uploadFilePath = document.getElementById("uploadFilePath");
    var uploadImage = document.getElementById("uploadImage");
    uploadImage.onclick = function()
        {
            upload.click();
            // 每 0.5 秒扫描一次。
            this.iTimeoutId = window.setInterval(CheckChange,250);        return false;
        }function CheckChange()
    {
        if(upload.value != uploadFilePath.value)
        {
            uploadFilePath.value = upload.value;
        }
    }
    //-->
    </script>
    </form>
    </body>
    </html>
      

  8.   

    这种直接赋值的方法测试过都是无效的,无法上传文件,唯一的一种办法是把 type=file 的文件选择框透明掉,盖在假的框上,用户看着好象是点击好看的框,其实让他点击的是那个透明的框<input id="mm" size="20"><input type="button" value="选择文件">
    <div style="position:absolute;top:15;left:-80;width:150;filter:alpha(opacity=0); opacity: 0; -moz-opacity: 0; -khtml-opacity: 0;" >
    <input type="file" onchange="document.getElementById('mm').value=this.value" size="33"></div>