2014-01-20 61 views
1

使用blueimp的文件上傳後提交按鈕我怎麼觸發文件上傳成功的Ajax請求後提交? 我試圖觸發fileuploadsubmit,但它說數據是未定義的。 下面是初始代碼:Blueimp文件上傳觸發一個成功的Ajax請求

HTML:

<form id="add-project-form" method="post" action="http://localhost/project/add/"> 
    <p> 
     <label for="project">Project Name:</label> 
     <input id="project" class="input-text" type="text" name="name" /> 
    </p> 
    <p> 
     <label for="overview">Project Overview:</label> 
     <input id="overview" class="input-text" type="text" name="overview" /> 
    </p> 
    <p><input type="submit" value="Add Project" /> 
</form> 

<form id="logo-upload" method="post" action="http://localhost/project/upload/" enctype="multipart/form-data"> 
    <p> 
     <input type="file" name="logo" id="logo" /> 
    </p> 
</form> 

的jQuery:

$('#logo-upload').fileupload({ 
    dataType: 'json', 
    maxNumberOfFiles: 1, 
    autoUpload: false 
}).on('fileuploadsubmit', function(e, data) { 
    console.log(data); 
}); 


$(document).on("submit", "#add-project-form", function(e) { 
    e.preventDefault(); 

    var data = $(this).serialize(); 
    var url  = $(this).attr("action"); 

    $.ajax({ 
     url: url, 
     data: data, 
     type: "post", 
     dataType: "json", 
     success: function(response) { 
      if(response && response.location != undefined) { 

       // I would want the upload to begin here 

      $('#logo-upload').fileupload().trigger('fileuploadsubmit'); 
      } 
     } 
    }); 
}); 
+0

'e.data'中包含了什麼?你從哪裏得到'.on('fileuploadsubmit',函數(e,data){'from?是否應該包含第二個參數? –

+0

不,它適用於我。http://jsfiddle.net/eLLWN/29/ –

+0

@KevinB下面是'e'對象的快照:http://screencast.com/t/rINDI0uO關於'.on('fileuploadsubmit',函數(e,data){'我跟着它:http ://stackoverflow.com/questions/19807361/uploading-multiple-files-asynchronously-by-blueimp-jquery-fileupload – gwinh

回答

4

綁定上的按鈕提交功能,你的Ajax請求後強制點擊:

$('#logo-upload').fileupload({ 
    dataType: 'json', 
    maxNumberOfFiles: 1, 
    autoUpload: false, 
    add : function(e,data){ 
      $("#uploadButton").on("click",function(){ 
       data.submit(); 
      }) 
      } 
}).on('fileuploadsubmit', function(e, data) { 
    console.log(data); 
}); 

$.ajax({ 
    url: url, 
    data: data, 
    type: "post", 
    dataType: "json", 
    success: function(response) { 
     if(response && response.location != undefined) { 
      $("#uploadButton").click(); 
     } 
    } 
}); 
+0

我不喜歡引入一個新的元素,作爲觸發事件的想法,但它確實解決了這個問題。謝謝你先生! – gwinh

+0

我想你也可以在'add'事件和成功調用'data.submit'上創建ajax請求 –

+0

Worked great 爲了我。謝謝! – Olokoo

相關問題