【问题标题】:JQuery File Upload Not ResetingJQuery 文件上传未重置
【发布时间】:2019-03-31 12:18:21
【问题描述】:

我有一个多文件上传解决方案,一旦单击“重置”按钮,它就不会清除文件。查看JSFIDDLE Demo 解决方案。 这是 HTML:

<form id="ImageUpload" action="#">
  <div class="field" align="left">
    <h2 class="page-header">Upload your images</h3>
      <div class="form-group">
        <div class="file-loading">
          <input type="file" id="files" name="files[]" multiple />
        </div>
      </div>
  </div>
  <hr />
  <div class="text-center">
    <button type="submit" name="Submit" class="btn btn-success">Submit</button>
    <button type="reset" name="Reset" class="btn btn-danger">Reset</button>
  </div>
</form>

这里是 Javascript:

$(document).ready(function() {
  if (window.File && window.FileList && window.FileReader) {
    $("#files").on("change", function(e) {
      var files = e.target.files,
        filesLength = files.length;
      for (var i = 0; i < filesLength; i++) {
        var f = files[i]
        var fileReader = new FileReader();
        fileReader.onload = (function(e) {
          var file = e.target;
          $("<span class=\"pip\">" +
            "<img class=\"imageThumb\" src=\"" + e.target.result + "\" title=\"" + file.name + "\"/>" +
            "<br/><span class=\"remove\"><i class='fa fa-times'></i></span>" +
            "</span>").insertAfter("#files");
          $(".remove").click(function() {
            $(this).parent(".pip").remove();
          });
        });
        fileReader.readAsDataURL(f);
      }
    });
  } else {
    alert("Your browser doesn't support to File API")
  }
});

理想的结果是不仅要清除所选文件的数量(“选择文件”按钮),还要清除预览图像。

按下“重置”按钮时,下面显示的体验是预期的结果。

如果有任何帮助,我将不胜感激,谢谢!

【问题讨论】:

  • well reset 不知道你对页面做了什么,所以你需要编写一些代码来删除它们。

标签: javascript jquery file-upload twitter-bootstrap-3 jquery-file-upload


【解决方案1】:

为您的重置按钮点击添加一个功能。

$("button[name='Reset']").click(function() {
    var $input = $("#files");
    // Clear your input file value
    $input.replaceWith($input.val('').clone(true));
    // Then clear the preview of the images
    $('.pip').html('');
});

【讨论】:

    【解决方案2】:

    您需要为重置按钮单击事件添加一个功能。这是你可以做的:

    $(document).on('click', '[name=Reset]', function(){
       $('.pip').remove();
    })
    

    【讨论】:

      猜你喜欢
      • 2014-02-06
      • 2014-12-31
      • 1970-01-01
      • 1970-01-01
      • 2014-06-02
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 2013-03-26
      相关资源
      最近更新 更多