JQuery Form插件函数之间的持久数据

时间:2014-05-22 10:03:44

标签: javascript jquery ajax file-upload jquery-plugins

我有一个包含多个上传文件夹的表单,上传文件名不同的文件,每个文件名由相关的提交按钮触发 - 这一切都运行正常 - 文件上传工作正常。

每次上传都有相关的按钮和进度条。

    <input type='file' name='file1' class='imagefile-logo' />
    <input type='submit' class='imagefile-logo upload-wrapper-btn' />
    <div class='imagefile-logo progresswrap'>...</div>

    <input type='file' name='file2' class='imagefile-design' />
    <input type='submit' class='imagefile-design upload-wrapper-btn' />
    <div class='imagefile-design progresswrap'>...</div>
    ...

使用jquery表单插件,一旦你同时上传两个文件 - 它只更新一个框/进度条。

我将类名保存到函数外部的变量中,第一个类的类被后续上传覆盖,而另一个上载仍在进行中,因此它使用上次保存的类名更新,正如您所期望的那样

所以我需要传入数据并且能够将这些数据看作是'success'和'uploadProgress'接收的数据的一部分,每个请求的某种实例或某种方式来索引/引用它们变量(需要有关谁发送此上传进度调用的数据)。

    var options = { 
            beforeSubmit:  beforeSubmit,    // pre-submit callback 
            success:       afterSuccess,  // post-submit callback 
            uploadProgress: OnProgress,     //upload progress callback 
            url: '/',
            type: "POST",
    };
...
    var filename;
...
    $(document).on('click','.upload-wrapper-btn', function(){
        filename = $(this)[0].className.match(/filename-[a-zA-Z0-9_]+/);
        $('#custom').ajaxSubmit(options);
    }
...
    function beforeSubmit(formData, formObject, formOptions){...}
    function afterSuccess(responseText, statusText, xhr, $form){...}
    function OnProgress(event, position, total, percentComplete){
        $('.' + filename + '.progressbar').width(percentComplete + '%')
    }

由于

0 个答案:

没有答案