2013-04-17 29 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/