我正在进行异步文件上传。我想在单击按钮后调用文件对话框,然后读取文件信息(名称,大小),然后最终将它们发送到服务器。我的问题是:首次点击脚本后发送一包数据(很棒)但是第二次点击后它发送两包数据,第三次点击=三包等。
什么是问题以及如何修复?
JS:
function FileAdd(){
$('#input_file').trigger("click");
$('#input_file').on('change', function(){
input = $('#input_file')[0];
console.log(input.files[0]);
});
}
HTML:
<button id="File_add" type="button" onclick="FileAdd();">+ Add</button>
<input type="file" multiple="" name="files" id="input_file">
修改 解决方案很简单: 将部分代码放在$(document).ready(function(){}
中答案 0 :(得分:5)
每次点击按钮时,您都会注册一个新的change
事件。
您可以将您的活动注册移到该功能之外吗?
$('#input_file').on('change', function(){
input = $('#input_file')[0];
console.log(input.files[0]);
});
function FileAdd(){
$('#input_file').trigger("click");
}