我正在使用Symfony 2中的文件验证创建嵌入式文件上传表单。对于文件上传,我使用了此示例http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html,并使用嵌入式表单http://symfony.com/doc/current/cookbook/form/form_collections.html。这是完美的工作,但我必须使用ajax提交表单,我该怎么做?
以下是我使用ajax提交表单的示例。
$("#submit_form").click(function() {
var $form = $(this).parents('form:first');
var $that = $(this);
$.ajax({
type: 'POST',
dataType: 'json',
cache: false,
data: $form.serialize(),
success: function($data) {
if ($data.status == 'ok') {
$that.parents('#lightbox').html($data.template);
}
},
url: $form.attr('action')
});
return false;
});
所以问题是我无法使用ajax传递文件。
答案 0 :(得分:1)
使用此插件http://malsup.com/jquery/form/。像魅力一样工作!
这可以提交表单并上传文件。您需要做的就是调用ajaxSubmit,然后实现处理响应的方法。
$('#myForm2').submit(function() {
$(this).ajaxSubmit({success: showResponse});
});
function showResponse(responseText, statusText, xhr, $form) {
alert('status: ' + statusText + '\n\nresponseText: \n' + responseText +
'\n\nThe output div should have already been updated with the responseText.');
}