将变量传递给jquery上传函数

时间:2016-01-20 16:42:09

标签: javascript jquery

我是网络编程新手,我正在尝试创建一个可以上传文件的页面。我目前在我的页面上有一个上传按钮,工作正常,但是,我想要两个按钮,但使用相同的功能。

我试图将一个变量(代码中的示例,如fromfrom = tag或logouploaddiv)传递给函数,让我看到它来自另一个按钮,所以我可以通过它传递给PHP脚本因此,我在jQuery中的dataType字段可以不同地处理来自每个按钮的文件。

我目前尝试使用$(this).attr(“id”),但这显然不正确,无论如何都无法正常工作。有没有办法可以传递自定义标签在函数中使用和读取,这样我就可以看到哪个按钮用于在PHP端上传每个文件,或者我只需要复制$('#fileupload')。 fileupload代码与我的其他按钮具有不同的ID?谢谢你的阅读!

<div id="logouploaddiv"><input class="btn btn-default" id="fileupload" type="file" name="files[]" comesfrom="logo_upload"></div>

<div id="progress" class="progress">
    <div class="progress-bar progress-bar-success"></div>
</div>
<script>
$(function () {
       'use strict';

         var url = window.location.hostname === '' ?
                     '' : 'server/php';
$('#fileupload').fileupload({
    url: url,
    formData: {type: $(this).attr("id")},
    dataType: 'json',
    done: function (e, data) {
        location.reload();
    },
    progressall: function (e, data) {
        var progress = parseInt(data.loaded / data.total * 100, 10);
        $('#progress .progress-bar').css(
            'width',
            progress + '%'
        );
    }
}).prop('disabled', !$.support.fileInput)
    .parent().addClass($.support.fileInput ? undefined : 'disabled');
 });

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你需要一个处理器来输入两个文件:文件标签。 尝试使用此jquery选择器:

$("input:file").fileupload({your handler here});