2011-12-17 61 views
0

我有一個上傳表單,應該在文件上傳時顯示進度條。該表單使用jQuery Validate插件來限制文件類型。如何使用jQuery和Validate插件調用表單提交函數?

使用我當前的代碼,在提交按鈕被按下後即時顯示進度欄,即使沒有選擇文件或文件類型不匹配。

任何想法爲什麼會發生這種情況?

$(document).ready(function() { 

    $('#document_upload').validate({ 

     rules: { 
      uploaded_file: { 
       required: true, 
       accept: "pdf|jpg|gif|png" 
      } 
     }, 
     errorPlacement: function(error, element) { 
      return true; 
     } 
    }); 

    $('#document_upload').submit(function() { 

     $('#upload_progress').show(); 

    }); 

}) 
+0

你確定你應該對錯誤返回true嗎?試試假。 – Hidde 2011-12-18 00:04:09

+0

@Hidde,這不相關,那只是'errorPlacement' – Richard 2011-12-18 00:12:40

回答

0

您在提交時是否收到正確的錯誤消息?我認爲是這樣,因爲進度條正在顯示,因此表單不會發送。

如何上傳文件?它只是一個標準的<input type="file">

這將始終顯示在提交上傳,所以你需要添加一些檢查

$('#document_upload').submit(function() { 
    $('#upload_progress').show(); 
}); 

什麼你可以嘗試補充的是:

if($("#document_upload input[name=uploaded_file]").length >= 1){ 
    $('#upload_progress').show(); 
} 

你能建立一個jsfiddle.net上的例子?

+0

感謝您的幫助!這裏是一個例子:http://jsfiddle.net/Bzayt/ – Michael 2011-12-18 00:19:41

+0

我其實不太清楚這個問題的最佳解決方案是什麼,但看看這個:http://jsfiddle.net/Bzayt/1 /。這基本上檢查在顯示進度之前是否選擇了文件。你可以爲'select'做同樣的事情。我必須警告你,你不能期待漂亮的東西,因爲頁面會重定向。對於一個漂亮的上傳者(有進展),你可以使用一個單獨的工具,如http://valums.com/ajax-upload/或http://www.plupload.com/ – Richard 2011-12-18 00:32:53

+1

這工作......謝謝! :) – Michael 2011-12-18 00:36:52

相關問題