如何使用Valums Ajax File-Uploader触发上传文件?

use*_*949 5 html javascript ajax jquery

使用Valums Ajax文件上传器时,如何触发上传?

默认行为是在用户选择文件后立即开始上载.我希望防止这种情况发生,而是在用户选择文件后单击单独的"上传"按钮时触发上传.

我查看了代码,发现上传是从change附加到文件输入的事件开始的.我首先添加return false;到该onSubmit函数,然后将click事件附加到触发change事件的另一个按钮:

$('#startUpload').on('click', function() {  
    // some conditionals
    $('input[name="file"]').trigger('change');  
});
Run Code Online (Sandbox Code Playgroud)

这不起作用.它只是再次打开文件菜单.

如何在用户选择文件后立即阻止上传,而在用户单击另一个按钮时触发上传?

Tho*_*ony 3

您必须为此修改 file-uploader.js 文件。在第 309 行,修改 onChange 函数以返回 false。然后在其上面添加如下函数,使代码变为:

startUpload: function(){
    this._onInputChange(this._button.getInput());
},
_createUploadButton: function(element){
    var self = this;

    return new qq.UploadButton({
        element: element,
        multiple: this._options.multiple && qq.UploadHandlerXhr.isSupported(),
        onChange: function(input){
            return false;
        }
    });
},
Run Code Online (Sandbox Code Playgroud)

然后在您的 HTML 文件中,在按钮单击或任何其他事件中,调用

uploader.startUpload();
Run Code Online (Sandbox Code Playgroud)

其中 uploader 是您的 qq.FileUploader() 对象的名称。

希望有帮助:)