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)
这不起作用.它只是再次打开文件菜单.
如何在用户选择文件后立即阻止上传,而在用户单击另一个按钮时触发上传?
您必须为此修改 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() 对象的名称。
希望有帮助:)