我的情况是这样的:
Html代码(这是模态的):
<div class="modal-body">
...
<input type="file" id="change-image" name="replace">
...
<button type="button" class="btn btn-success" id="confirm-edit-image">
Save
</button>
</div>
如果我点击输入类型文件,它将运行javascript代码:
$('#change-image').change(function (e) {
data = new FormData();
data.append('file', $('#change-image')[0].files[0]);
});
存在可变数据图像
如果我这样做:
$('#confirm-edit-image').on("click",function(){
// get variable data
});
我想获取可变数据图像
我该怎么做?
答案 0 :(得分:3)
确保“数据”是全局变量
var data;
$('#change-image').change(function (e) {
data = new FormData();
data.append('file', $('#change-image')[0].files[0]);
});
$('#confirm-edit-image').on("click",function(){
console.log(data);
});
答案 1 :(得分:1)
在这些函数之外声明data
足以共享变量本身。这是一个实时片段。
有关javascript中变量范围的更多详细信息,请参阅此答案What is the scope of variables in JavaScript?。
var data = new FormData();
$('#change-image').change(function (e) {
data.append('file', $('#change-image')[0].files[0]);
});
$('#confirm-edit-image').on("click",function(){
var empty = true;
for (entry of data.entries()) {
console.log(entry);
empty = false;
}
if(empty) { console.log("Please add a file first!\n"); }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="modal-body">
...
<input type="file" id="change-image" name="replace">
...
<button type="button" class="btn btn-success" id="confirm-edit-image">
Save
</button>
</div>