做一个图片上传工具,借用网上说的做法:点击一个a或者button,触发file的onclick事件,为什么IE、FF、傲游下全部无效啊,文件选择框根本没弹出来?代码类似于:
$("#buttonId").click(funcrion(e){
   $("#theFile").trigger("click");
});初次发帖,望各位大侠指点迷津!

解决方案 »

  1.   

    $("#buttonId").click(funcrion(e){
    var obj=document.getElementById("theFile");
    if(obj.fireEvent){obj.fireEvent("onclick");}
    else{if(obj.onclick) obj.onclick();}
    });
      

  2.   

    localhost是可以的,不是本地信任站点可能有权限问题。
    可以用swfupload取代  www.swfupload.org
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
     <script type="text/javascript">
    $(function(){
    $("#buttonId").click(function(e){
      $("#theFile").trigger("click");
    });});
    </script>
    <input type="file" id="theFile">
    <input type="button" id="buttonId" value="click">
      

  3.   

    fireEvent是什么意思?我试过你的代码,貌似不行~
      

  4.   


    我要做成的效果是点击一个图标,选择图片之后,直接将图片返提交回到后台储存,返回到前台提供预览。
    swf是多文件上传并且还有进度条吧,可以用来解决我的问题吗?
      

  5.   

    <script>
    var doClick=function(){
    var obj=document.getElementById("ts");
    if(obj.fireEvent){obj.fireEvent("onclick");}
    else if(obj.onclick){obj.onclick();}
    };
    </script>
    <input type="file" id="ts" value="" onclick="alert('x');"/>
    <input type="submit" value="click" onclick="doClick()"/>fireEvent是一个属性,IE下的,可以用它来触发事件我测试过了,onclick事件是可以触发的,但没有弹出选择文件的框
      

  6.   


    我刚刚像你这样加onclick,确实都执行了alert(),但是没有弹出文件选择框。是浏览器出去安全的考虑导致没有弹出选择框吗?有没有什么解决方案啊~
      

  7.   

    你用swfupload吧,多文件上传单文件上传都是由你自己设置的,至于不要进度条也行,直接隐藏掉或者去掉都可以的
      

  8.   

    <input type="file" id="theforever_csdn">
    <script>
    document.getElementById('theforever_csdn').click();
    </script>如果给FILE设置了onclick()事件,直接调用其click()方法就会激活onclick()事件了。
      

  9.   

    $("#buttonId").click(funcrion(e){
    document.getElementById('theforever_csdn').click();//换成你的FILE ID
    });
      

  10.   

    楼主说的需求,意思应该是设置另一个对象的onclick事件,在里面调用FILE的click方法吧,而和FILE的onclick无关。用我上面的方式就行了。
      

  11.   


    我的后台是Spring MVC,参数怎么弄的啊?