我有一個允許用戶上傳文件的表格。它是一個多步驟的表單(在表單中的各個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.
}
});
我可以在[jQuery Form](http://malsup.com/jquery/form/)中建議幾個指針或在現代瀏覽器中使用FormData API,請參閱http://abandon.ie/notebook/simple-file- uploads-using-jquery-ajax –
謝謝Arun ...我在我的問題中添加了一些代碼,以便您能夠理解我的想法。 –
你需要支持哪些瀏覽器?這在舊版瀏覽器中並不實用,但在較新的瀏覽器中可能。不幸的是,CF在這裏不會幫助你:你的代碼只在文件被完全傳輸時運行,所以真的是客戶端將要監視進度 – barnyr