点击事件的多个答案

时间:2015-07-02 13:05:59

标签: 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]);
});
}

HTML:

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

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

1 个答案:

答案 0 :(得分:5)

每次点击按钮时,您都会注册一个新的change事件。

您可以将您的活动注册移到该功能之外吗?

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