2013-03-31 15 views
0
// triggering input:file click via <a> tag click 

    $('.upload_company_logo').on('click', function(e){ 
     e.preventDefault(); 
     $('#addCompanyLogo input:file').click(); 
    }); 

    // main submit event 

    $('#addCompanyLogo').submit(function() { 
     $(this).unbind('submit').ajaxSubmit({  
      iframe: true, 
      url : _ROOT + 'users/upload_company_logo', 
      success: function (responseText, statusText) { 
       var response = $.parseJSON(responseText); 
       if(statusText == 'success') { 
        var response = $.parseJSON(responseText); 
        $('.the_company_logo').attr('src', _ROOT + 'image/company_logo/' + response.tmp_name + '?t=' + (new Date()).getTime()) 
       } 
      }       
     }); 
     return false; 
    }); 

    // submitting form 
    $('#addCompanyLogo input:file').on('change', function() { 
     $('#addCompanyLogo').submit(); 
    }); 

工作,我上面的代码通过Ajax和工作在所有浏览器除了IE以外就好受审上传图片,在IE浏览器的显示错误Access is Denied提交表单的输入文件。使用jQuery malsup不仅在IE

一个想到提及的是,这里的表单form#addCompanyLogo被隐藏,我通过<a>标签点击触发input:file更改事件。

回答

0

IE不支持通过onchange提交带有文件上传的表单。这是一个'安全'功能。只需通过直接点击即可触发:)