此特定实例中的 javascript 变量范围

标签 javascript jquery ajax jquery-upload-file-plugin

在 javascript/jQuery 中,在调用文件上传插件之前,设置一个变量:

doc_type = "q";

然后,插件被初始化。在插件选项中是:onSelect:,当选择文件时调用。代码如下所示:

var doc_type = "q";
$(function(){
    var project_num = $("#pnum").val();
    var uploadObj = $("#fileuploader").uploadFile({
        url: "upload_files_processor.php",
        method: "POST",
        onSelect: function(){
            doc_type = "W";
            //Or:
            //doc_type = $('#hidden_input').val();  <-- What I really need to do
            return true;
        },
            allowedTypes:"pdf,doc,docx,xls,xlsx,ppt,pptx,bmp,jpg,png,zip",
        fileName: "myfile",
        formData: {"project_num":project_num,"doc_type":doc_type},
        multiple: true,
        autoSubmit: true,
        showStatusAfterSuccess:false,
        onSuccess:function(files,data,xhr) {
            //Refresh documents table
        },
    });
}); //END document.ready()

问题:

在上传处理器upload_files_processor.php中,接收到的doc_type值为:

$doc_type = $_POST["doc_type"];  // q

我怎样才能收到值 W

引用文献:heyageek jquery upload file plugin website -- 点击API & Options标签

最佳答案

如果您查看 Advanced api 的选项卡。有一个名为 dynamicFormData 的选项被执行并且 appears在发送之前附加到表单数据。

dynamicFormData: function() {
    var data ={"doc_type":doc_type };
    return data;
},

这就是您所需要的,因为 doc_type 将在发送之前而不是在创建时进行评估。

如果这行得通。我真的没有办法测试它

关于此特定实例中的 javascript 变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23071410/

相关文章:

javascript - 使用参数调用无参数 javascript 函数

jQuery .animate() 不起作用,但 .css() 起作用

jquery - 使用ajax刷新表格内容后重绘数据表?

javascript - 如何通过外部 JS 文件访问 ruby​​/rails 应用程序变量

javascript - 在 angularJs 中动态加载模块

jquery - 如何使用 jquery 将元素添加到其各自的同级元素中

javascript - JavaScript 闭包中的垃圾回收

javascript - 使用 jQuery 根据其文本而不是值从菜单中选择选项

javascript - JQuery插件,多个实例同一页面;适用于元素类和唯一元素 ID;用 $.data 保护选项;公共(public)访问功能

javascript - 使用video-js构建带有字符串的HTML视频