jquery - 使用 Ajax 发布多部分/表单数据

标签 jquery html ajax

由于某种原因,我无法让以下脚本正常工作,在不使用脚本提交表单时,一切都正常工作,但是当使用脚本提交表单时,我只获得帖子中的类别和描述变量但没有文件。所以我的问题是如何让脚本也发布文件变量。

Ajax

$("#img-post").click(function()
{
    $("#imgupload").submit(function(e)
    {
        var postData = $(this).serializeArray();
        var formURL = $(this).attr("action");
        $.ajax(
        {
            url : formURL,
            type: "POST",
            data : postData,
            success:function(data, textStatus, jqXHR) 
            {
                $("#img").html('<pre><code class="prettyprint">'+data+'</code></pre>');

            },
            error: function(jqXHR, textStatus, errorThrown) 
            {
                alert('Error');
                document.getElementById('enquiry').style.visibility = 'hidden';
            }
        });
        e.preventDefault(); //STOP default action
    });

    $("#imgupload").submit(); //SUBMIT FORM
});

HTML

<div class="img" id="img"></div>

<form name="imgupload" id="imgupload" action="upload.php" method="post" enctype="multipart/form-data">
<input name="category" id="category" type="text" />
<input name="file" id="file" type="file" />
<textarea name="discription" id="discription" cols="68%" rows="8"></textarea><br>
<input type="button"  id="img-post" name="img-post" value="Add" />
</form>

最佳答案

文件选择元素中的数据未序列化

取自文档页面:

https://api.jquery.com/serializeArray/



但是,您可以使用此处的 jquery ajax 表单插件来实现此目的:

http://malsup.com/jquery/form/

这个插件很好,因为它不仅可以捕获表单数据(包括文件),您还可以轻松地在 ajax 调用的 data 属性中发送额外的 $_POST 数据以及您的表格。

关于jquery - 使用 Ajax 发布多部分/表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22771234/

相关文章:

javascript - jQuery 选择直接 "parents",不相似

javascript - Ajax 时不在 chrome 上更新 css

php - 通过激活链接验证电子邮件帐户

html - 导航栏呈现在主容器上方而不是上方

javascript - 表单未发布资源未找到

jquery - 如何打印文件名

javascript - URL 哈希页面跳转...固定 header 重叠

javascript - 模态窗口(弹出)和背景

c# - 尝试从第三方api同步数据

c# mvc jquery 实时聊天