表单提交完整

时间:2015-05-06 16:19:21

标签: javascript jquery ajax forms form-submit

所以在我的页面上,我有一个按钮,用户可以将数据导出到EXCEL / PDF。它的工作方式是点击按钮,然后我将数据发送到提交请求的隐藏表单。请求完成后,它将返回用户选择的文档类型的内容,该内容将提示"另存为"对话。

<form id="export-form" action="laravel-excel.php" method="POST" target="hidden-form">
    <input type="hidden" name="type" value="{{header.export.type}}" />
    <input type="hidden" name="name" value="{{header.export.name}}" />
    <input type="hidden" name="data" value="{{header.export.data}}" />
</form>
<iframe style="display:none" name="hidden-form"></iframe> 

所以一切正常!但是,我想添加一个加载器让人们知道文件正在处理,当它完成时,我想隐藏它。根据我的研究,我无法找到适用于表单的解决方案。我找到的解决方案是通过AJAX进行处理的方式,如下所示:

$('#export-form').ajaxForm({
success: function (response, status, request) 
{
    var disp = request.getResponseHeader('Content-Disposition');
    if (disp && disp.search('attachment') != -1) 
    {
       var type = request.getResponseHeader('Content-Type');
       var blob = new Blob([response], { type: type });
       var URL = window.URL || window.webkitURL;
       var downloadUrl = URL.createObjectURL(blob);
        window.location = downloadUrl;
    }
}});

那里有更好的解决方案吗?

0 个答案:

没有答案