2014-03-12 80 views
0

我正在使用load()方法來POST表單並同時加載響應。像這樣:Jquery加載()+張貼形式(與imagefield)?

$("#contentdiv").load('upload/', $('#uploadform').serializeArray()); 

響應可能是數據庫在某個子頁面中呈現的實例。它可以是與錯誤相同的形式。那就是爲什麼真的想繼續使用load()。它使得它可以順利處理內置的表單錯誤,CSRF令牌等。

問題是POST時,當一個字段是文件/圖像字段。它不起作用。

是否有可能加載()+ POST表單時,窗體有一個文件?也許結合「ajaxSubmit」?

謝謝大家!

+0

可能重複[序列化文件類型jQuery](http://stackoverflow.com/questions/12262816/serialize-file-type-jquery) – Barmar

+0

你有沒有試過這個,'$ .post('upload /',$('#uploadform')。 serialize(),function(response){$(「#contentdiv」)。html(response);});' – Jack

+0

感謝忍者,我會嘗試那! – user3199840

回答

0

你要知道,jQuery的劑量不提交input=file需要使用隱藏的iframe提交表單,這是例如對於

添加此attribute到窗體target="uploadframe"

<script type="text/javascript"> 
$(function() { 
    //append hidden iframe 
    $('body').append('<iframe id="uploadframe" name="uploadframe" style="display:none" />'); 
    //on form submit 
    $('#bb-upload-form').submit(function(){ 
     //add form action url 
     $(this).attr('action', 'upload/'); 
     //add form target 
     $(this).attr('target', 'uploadframe'); 
     //load response from server submited file 
     iframe = $('#uploadframe').load(function() { 

      //get response 
      response = iframe.contents().find('body'); 

      alert(response); 

     }); 
    }); 
}); 
</script>