Jquery FileUpload插件无法发送由element.value组成的formdata

时间:2014-03-04 06:04:20

标签: jquery jquery-file-upload

我正在尝试通过jquery fileupload插件以编程方式发送一些formdata,但它似乎无法从html元素中获取数据。如果我将其设置为手动字符串,它会正确发送数据。这是插件的限制还是我错过了什么?

$(function () {
    $('#fileupload').fileupload({
        formData: { name: $('input#doc_name').val() , date: "troll" },
        dataType: 'json',
        done: function (e, data) {
            $.each(data.result, function (index, file) {
                $('<p/>').text(file).appendTo(document.getElementById("bottom_right"));
            });
        },
        progressall: function (e, data) {
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $('#progress .bar').css(
            'width',
            progress + '%'
        );
        }
    });
});

当我尝试通过Request []在服务器上检索时,名称显示为空,但是日期出现就好了。

任何帮助表示赞赏。 拉扎

1 个答案:

答案 0 :(得分:1)

解决任何感兴趣的人。我必须将$()。fileUpload()放在一个方法中,然后从onClick事件中调用该方法。不知道为什么如果有人为了知道而启发我们,它之前不会起作用。

function uploadImage() {

var x = $('#doc_name').val();
var y = $('#exp_date').val();

$('#fileupload').fileupload({
            formData: { name:x, date:y },
            dataType: 'json',
            done: function (e, data) {
                $.each(data.result, function (index, file) {
                    $('<p/>').text(file).appendTo(document.getElementById("bottom_right"));
                });
            },
            progressall: function (e, data) {
                var progress = parseInt(data.loaded / data.total * 100, 10);
                $('#progress .bar').css(
            'width',
            progress + '%'
        );
            }
        });
}