2013-04-17 25 views
0

我有jQuery的提交消防問題提交形式:的preventDefault並與jQuery

$(document).ready(function() { 
        $('#zestaw-edytuj-form').submit(function(e) { 
         e.preventDefault(); 
         $('#ip_dilmarbundle_zestawytype_path').uploadify('upload'); 
        }); 

        $('#ip_dilmarbundle_zestawytype_path').uploadify({ 
         'swf'  : '{{ asset("js/uploadify/uploadify.swf") }}', 
         'uploader' : '{{ path('upload-image') }}', 
         'folder' : '{{ asset("images") }}', 
         'auto'  : false, 
         'onUploadSuccess' : function(file,data,response) { 
          $('#ip_dilmarbundle_zestawytype_zdjecie').attr('value',file.name); 

         }, 
         'onUploadComplete' : function(file) { 
          $('#zestaw-edytuj-form').submit(); 
         }, 
         'onUploadError' : function(file, errorCode, errorMsg, errorString) { 

         }, 
        }); 
       }); 

首先,後提交按鈕單擊我需要的preventDefault和上傳圖像。上傳完成後(onUploadComplete)我通常需要提交表單。但是當圖片上傳時,提交不會觸發。我該怎麼辦?

+1

'onUploadError:func(){},'' – Jai

回答

0

試試這個:在結尾處加上結尾,這裏

EDITED:固定這也太 'onUploadError:函數(){},'

$(document).ready(function() { 
    var ready = false; 

$('#zestaw-edytuj-form').submit(function(e) { 
    if(!ready){ 
     e.preventDefault(); 
     $('#ip_dilmarbundle_zestawytype_path').uploadify('upload'); 
    } 
}); 

$('#ip_dilmarbundle_zestawytype_path').uploadify({ 
    'swf'  : '{{ asset("js/uploadify/uploadify.swf") }}', 
    'uploader' : '{{ path('upload-image') }}', 
    'folder' : '{{ asset("images") }}', 
    'auto'  : false, 
    'onUploadSuccess' : function(file,data,response) { 
     $('#ip_dilmarbundle_zestawytype_zdjecie').attr('value',file.name); 

    }, 
    'onUploadComplete' : function(file) { 
     ready = true; 
     $('#zestaw-edytuj-form').submit(); 
    }, 
    'onUploadError' : function(file, errorCode, errorMsg, errorString) { 

    } 
}); 
}); 
+0

最後我加了'ready = false',它起作用了,謝謝。 :) –

0

我相信你有一個公式在這裏提交循環,如果它工作。幾個建議。您可以將表單分成兩種形式(單獨的表單標籤),一種用於文件上傳,另一種用於輸入數據。當文件上傳完成後,提交數據表單。然而,最好的方法是,使用uploadify時,可以將其他附加數據作爲參數發送,以便處理文件上傳的相同腳本也可以處理傳入數據。你可以得到像var myform = $(this).serializeArray()這樣的表單參數,我相信參數是formData,所以你可以在uploadify()配置參數中設置'formData':myform。 (參考:Uploadify網站現在是http://www.uploadify.com/documentation/uploadify/formdata/