Krajee Bootstrap 文件输入如何动态更改上传额外数据

Krajee Bootstrap fileinput how can i change the uploadExtraData dynamically

本文关键字:数据 动态 输入 文件 Bootstrap 何动态 Krajee      更新时间:2023-09-26

嗨,我正在使用 Krajee Bootstrap 文件输入,我需要在提交表单时动态更改uploadExtraData。所以我把它作为一个回调函数。但它对我不起作用。我认为uploadExtraData回调函数仅在初始化时工作。

这是我的代码

$(".file-loading").fileinput({
     uploadUrl: document.location.origin + "/discussions/add",
     uploadAsync: false,
     uploadExtraData:getFormData(),
 });
function getFormData(){
    var project_id = $("#DiscussionProjectId").val();
    var discussion_title = $("#DiscussionDiscussionTitle").val();
    var comment = $('#discussionComment').attr('value');
    var data = {
        project_id:project_id,
        discussion_title:discussion_title,
        comment:comment
    };
    return data;
}

我正在将输入文件和数据保存在表单提交中。

我遇到了同样的问题,你可以试试这个:

$(".file-loading").fileinput({
  uploadUrl: document.location.origin + "/discussions/add",
  uploadAsync: false,
  uploadExtraData:function(previewId, index) {
        var data = {
            project_id : $("#DiscussionProjectId").val(),
            discussion_title:$("#DiscussionDiscussionTitle").val(),
           comment:$('#discussionComment').attr('value')
        };
        return data;
    },
});

也可以销毁控件并再次重新创建它

self.jqueryObjects.fileInput.fileinput('destroy');
    self.jqueryObjects.fileInput.fileinput({
        showCaption: false,
        uploadUrl: self.urls.uploadDocument.replace(/<patient_id>/g, self.selectedPatient.id),
        allowedFileExtensions: ["txt"]
    });