图像上传后 JQuery 自动提交表单 - 不提交按钮

Posted

技术标签:

【中文标题】图像上传后 JQuery 自动提交表单 - 不提交按钮【英文标题】:JQuery auto-submit form after image upload - Not Submit button 【发布时间】:2019-09-24 22:48:06 【问题描述】:

我想在图片上传后自动提交表单。该表单正在同一页面上处理。所以我没有 if(isset($_POST["submit"]))

<div class="container">
  <h1>jQuery Image Upload 
    <small>with preview</small>
  </h1>
  <div class="avatar-upload">
    <form id="formImageUpload" action="#" method="post" enctype="multipart/form-data">
      <div class="avatar-edit">
        <input type='file' id="imageUpload" name="imageUpload" accept=".png, .jpg, .jpeg" onchange="this.form.submit()"  />
        <label for="imageUpload"></label>
      </div>
    </form>

    <div class="avatar-preview">
      <div id="imagePreview" style="background-image: url(http://i.pravatar.cc/500?img=7);" onchange="this.form.submit()" >
      </div>
    </div>
  </div>
</div>

jquery 文件是:

function readURL(input) 
  if (input.files && input.files[0]) 
    var reader = new FileReader();
    reader.onload = function(e) 
        $('#imagePreview').css('background-image', 'url('+e.target.result +')');
        $('#imagePreview').hide();
        $('#imagePreview').fadeIn(650);
        $("#formImageUpload" ).submit();
    
    reader.readAsDataURL(input.files[0]);
  



$("#imageUpload").change(function()    
   readURL(this);
);

【问题讨论】:

我认为打电话给onchange="readURL(this)" 对你有用。 能否请您从操作中删除#:
然后尝试提交跨度>
onchange="readURL(this)" 做到了 【参考方案1】:

所以,你的答案是这样的:

<div class="container">
  <h1>jQuery Image Upload <small>with preview</small></h1>
  <div class="avatar-upload">
    <form id="formImageUpload" action="#" method="post" enctype="multipart/form-data">
      <div class="avatar-edit">
        <input type='file' id="imageUpload" name="imageUpload" accept=".png, .jpg, .jpeg" onchange="readURL(this)"  />
        <label for="imageUpload"></label>
      </div>
    </form>

    <div class="avatar-preview">
      <div id="imagePreview" style="background-image: url(http://i.pravatar.cc/500?img=7);" ></div>
    </div>
  </div>
</div>

JS:

function readURL(input) 
  if (input.files && input.files[0]) 
    var reader = new FileReader();
    reader.onload = function(e) 
      $('#imagePreview').css('background-image', 'url('+e.target.result +')');
      $('#imagePreview').hide();
      $('#imagePreview').fadeIn(650);
      $("#formImageUpload" ).submit();
    
    reader.readAsDataURL(input.files[0]);
  

【讨论】:

以上是关于图像上传后 JQuery 自动提交表单 - 不提交按钮的主要内容,如果未能解决你的问题,请参考以下文章

使用 AjaxForm 时以编程方式提交表单

jquery ajax 提交表单,serialize()序列化表单数据,但其对type=file的input也就是上传不支持,怎么办?

取消表单文件上传提交

使用jquery.form.js提交表单上传文件

是否有“提交后”的 jQuery 选项?

表单提交后如何防止页面重新加载 - JQuery