I just built this function based on some info I read.
Use it like using .serialize()
, instead just put .serializefiles();
.
Working here in my tests.
//USAGE: $("#form").serializefiles();(function($) {$.fn.serializefiles = function() { var obj = $(this); /* ADD FILE TO PARAM AJAX */ var formData = new FormData(); $.each($(obj).find("input[type='file']"), function(i, tag) { $.each($(tag)[0].files, function(i, file) { formData.append(tag.name, file); }); }); var params = $(obj).serializeArray(); $.each(params, function (i, val) { formData.append(val.name, val.value); }); return formData;};})(jQuery);