【问题标题】:Javascript variable loses its valueJavascript变量失去了它的价值
【发布时间】:2019-12-23 22:30:28
【问题描述】:

背景:我使用 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>

【问题讨论】:

  • 将 var error3 移到第 4 行。
  • @SreeramPadmanabhan 正如我所说,我在发布当前版本之前尝试过这个并且没有工作。根据你的建议,我又试了一次,结果还是一样。

标签: javascript dropzone.js dropzone


【解决方案1】:

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

$('#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,
...

【讨论】:

  • 正如我所说,我在发布当前版本之前尝试过此操作,但没有成功。根据你的建议,我又试了一次,结果还是一样。
  • 您是否同时删除了我提到的行?如果是,这可能是异步操作的问题,您可能会发现这是因为 processQueue() 操作尚未完成。
  • 我该如何解决这个问题? (我删除了那行)
  • 您已经收到了成功的回调:this.on("successmultiple"...。试着把你的逻辑放在那里。
猜你喜欢
  • 2021-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-07
  • 1970-01-01
  • 1970-01-01
  • 2019-01-19
相关资源
最近更新 更多