2013-03-31 14 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提交帶有文件上傳的表單。這是一個'安全'功能。只需通過直接點擊即可觸發:)