Javascript 变量失去了它的价值

Javascript variable loses its value

背景: 我使用 butSubmit 提交具有 Dropzone 和其他一些字段的表单 - 首先处理 dropzone,然后如果一切顺利,字段也会被处理

问题:文件(来自dropzone)上传正确,error3得到DropzoneOK值。但是,当我访问按钮单击时的值时,它显示为空。 我也在函数外尝试使用 var error3=""(也就是说,在第 4 行)。

<script>
  $(document).ready(function() {
    Dropzone.autoDiscover = false;

    var myDropzone = new Dropzone('#myDropzone', {       
      autoProcessQueue: false,
      uploadMultiple: true,
      parallelUploads: 20,
      maxFiles: 20,
      addRemoveLinks: true,
      init: function() {
        this.on("errormultiple", function(){
          error3="DropzoneErr";
        });
        this.on("queuecomplete", function () {
          this.removeAllFiles();
        });
        this.on("successmultiple", function(file, response) {
          error3="DropzoneOK";   //It works
        });
      }
    });

    $('#butSubmit').click(function () {
       var error3="";
       myDropzone.processQueue();
       console.log(error3);  //error3 is shown to be empty
       if(error3!="DropzoneOK")
            error3 = "<p style='color:red'>Please try again</p>";
    });

  });
</script>

您正在用空值再次声明此变量。

$('#butSubmit').click(function () {
       var error3=""; <--- wrong, remove this
       myDropzone.processQueue();
       console.log(error3);  //error3 is shown to be empty
       if(error3!="DropzoneOK")
            error3 = "<p style='color:red'>Please try again</p>";
    });

删除该行后,将 var error3="" 添加为第一行,如下所示:

$(document).ready(function() {
    var error3="";
    Dropzone.autoDiscover = false;

    var myDropzone = new Dropzone('#myDropzone', {       
      autoProcessQueue: false,
...