点击事件的多个答案

Ada*_*ski 1 javascript jquery file-upload

我正在进行异步文件上传.我想在单击按钮后调用文件对话框,然后读取文件信息(名称,大小),然后最终将它们发送到服务器.我的问题是:在第一次点击脚本后发送一包数据(这很棒)但在第二次点击后它发送两包数据,第三次点击=三包等.

什么是问题,如何修复?

JS:

function FileAdd(){
$('#input_file').trigger("click");

$('#input_file').on('change', function(){
    input = $('#input_file')[0];
    console.log(input.files[0]);
});
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<button id="File_add" type="button" onclick="FileAdd();">+ Add</button>
<input type="file" multiple="" name="files" id="input_file">
Run Code Online (Sandbox Code Playgroud)

编辑: 解决方案很简单:将部分代码放在$(document).ready(function(){}中

dm0*_*514 5

change每次单击按钮时,您都要注册一个新事件.

你可以在活动之外移动你的活动注册吗?

$('#input_file').on('change', function(){
    input = $('#input_file')[0];
    console.log(input.files[0]);
});
Run Code Online (Sandbox Code Playgroud)
function FileAdd(){
  $('#input_file').trigger("click");
}
Run Code Online (Sandbox Code Playgroud)