成功的ajax请求后,Blueimp Fileupload触发器提交按钮

时间:2014-01-20 18:40:43

标签: javascript jquery blueimp

使用blueimp的fileupload如何在成功的ajax请求后触发fileupload提交? 我试图触发fileuploadsubmit,但它说数据未定义。 以下是初始代码:

HTML:

<form id="add-project-form" method="post" action="http://localhost/project/add/">
    <p>
        <label for="project">Project Name:</label>  
        <input id="project" class="input-text" type="text" name="name" />
    </p>
    <p>
        <label for="overview">Project Overview:</label> 
        <input id="overview" class="input-text" type="text" name="overview" />
    </p>
    <p><input type="submit" value="Add Project" />
</form>

<form id="logo-upload" method="post" action="http://localhost/project/upload/" enctype="multipart/form-data">
    <p>
        <input type="file" name="logo" id="logo" />
    </p>
</form>

jQuery的:

$('#logo-upload').fileupload({
    dataType: 'json',
    maxNumberOfFiles: 1,
    autoUpload: false
}).on('fileuploadsubmit', function(e, data) {
    console.log(data);
});


$(document).on("submit", "#add-project-form", function(e) {
    e.preventDefault();

    var data    = $(this).serialize();
    var url     = $(this).attr("action");

    $.ajax({
        url: url,
        data: data,
        type: "post",
        dataType: "json",
        success: function(response) {
            if( response && response.location != undefined ) {

                // I would want the upload to begin here 

            $('#logo-upload').fileupload().trigger('fileuploadsubmit'); 
            }
        }
    });
});

1 个答案:

答案 0 :(得分:4)

将提交功能绑定在按钮上并在ajax请求后强行单击:

$('#logo-upload').fileupload({
    dataType: 'json',
    maxNumberOfFiles: 1,
    autoUpload: false,
    add : function(e,data){
             $("#uploadButton").on("click",function(){
                data.submit();
             })
          }
}).on('fileuploadsubmit', function(e, data) {
    console.log(data);
});

 $.ajax({
    url: url,
    data: data,
    type: "post",
    dataType: "json",
    success: function(response) {
        if( response && response.location != undefined ) {
            $("#uploadButton").click();
        }
    }
});