2014-01-06 63 views
-1

我有一個允許用戶上傳文件的表格。它是一個多步驟的表單(在表單中的各個div上使用簡單的隱藏/顯示),因此只有當用戶單擊提交時,表單纔會被提交。帶文件上傳和顯示等待時間的Postig表格

當用戶單擊提交表單帖子到處理所有內容的ColdFusion頁面時,也可以返回JSON格式的成功結果。我知道你不能使用AJAX提交帶有附件的表單(除非使用某種插件)。

任何人都可以讓我知道如何有一個表單,將數據發佈到另一個頁面,並顯示進度欄,而它正在處理。一旦JSON從其他頁面返回「成功」結果,它就可以重定向到成功頁面或其他任何頁面。我試過使用JQuery的AJAX,但它不會明顯發送文件數據,所以唯一的方法是直接將表單發佈到沒有涉及JQuery的ColdFusion頁面。這是有效的,但如果用戶提交大量文件,他不會知道爲什麼頁面掛了很長時間,而且他需要等待多長時間。

這可能嗎?我正在使用ColdFusion 10和JQuery 1.9.1(但如果需要可以使用2.0)。

這是我到目前爲止有:

 $("#my-form").on('click', 'input[type="submit"]', function (e) { 
      if (!$("#my-form").valid()) { //if form is invalid, show errors and don't submit 
       e.preventDefault(); 
       return; 
      } 
else { 
    // Form validated so is posted to server. 
    // How to wait for the CF page to return a successful JSON result? 
    // A spinner probably is enough to show the page is doing something. 

    } 
     }); 
+1

我可以在[jQuery Form](http://malsup.com/jquery/form/)中建議幾個指針或在現代瀏覽器中使用FormData API,請參閱http://abandon.ie/notebook/simple-file- uploads-using-jquery-ajax –

+0

謝謝Arun ...我在我的問題中添加了一些代碼,以便您能夠理解我的想法。 –

+1

你需要支持哪些瀏覽器?這在舊版瀏覽器中並不實用,但在較新的瀏覽器中可能。不幸的是,CF在這裏不會幫助你:你的代碼只在文件被完全傳輸時運行,所以真的是客戶端將要監視進度 – barnyr

回答

0

我用:Jquery blueimp file upload。強烈推薦

該插件有很好的支持,交叉瀏覽器,以及用戶界面所需的所有功能。

+0

感謝達甘,我已經去了Jquery表單插件,它似乎很好地工作 –