Я бы предложил использовать классы для загрузки файлов - уменьшит ваш код jQuery .. например ...
<input type="file" id="file1" name="file1" class="uploadifyfile" />
<input type="file" id="file2" name="file2" class="uploadifyfile" />
<input type="file" id="file3" name="file3" class="uploadifyfile" />
Тогда ваш jQuery становится:
$("#add_facility_form").submit( function(event){
$('.uploadifyfile').uploadifyUpload(); // uses class instead of multiple IDs
if (numFilesUploaded < $(".uploadifyQueueItem").length) { return false; }
});
Затем при инициализации элементов загрузки добавьте метод onComplete
, чтобы отслеживать завершенные загрузки:
$(".uploadifyfile").each(function () {
$(this).uploadify({
'onComplete': function (event, queueId, fileObj, response, data) {
incrementUploadedCount();
}
});
});
Затем создайте переменную для отслеживания завершенных загрузок, затем в функции incrementUploadedCount
проверьте, все ли были завершены, если они отправили форму
// keep track of uploaded count
var numFilesUploaded = 0;
function incrementUploadedCount() {
numFilesUploaded++; // increment complete count
// check if complete count matches number of uploadify elements
if (numFilesUploaded == $(".uploadifyQueueItem").length) {
// submit your form
$("#add_facility_form").submit();
}
}