如何从其他函数中获取变量?

时间:2017-06-08 08:35:34

标签: javascript jquery html css ajax

我的情况是这样的:

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
});

我想获取可变数据图像

我该怎么做?

2 个答案:

答案 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>