javascript - 当 javascript 提交表单时,文件不会发布

标签 javascript jquery ajax forms

我有一个由 JavaScript 提交的图像上传表单,但文件数据未提交。我已经查看了如何使用 ajax 修复此问题的示例,但找不到任何使用我正在使用的 javascript 提交解决此问题的示例。

<td>New Photo<br>
<div id="editphoto">
<form id="editphoto" enctype="multipart/form-data"  method="post" action="editphoto.php">
<input type="hidden" name="employeeid" value="<?php echo $listing[$k]["employeeid"] ?>">
<input type="file" name="file2">
<input type="submit" value="Submit">
</form></div></td>

<script>
     $('#editphoto form').submit(function(){
          var data=$(this).serialize();
          $.post('editphoto.php', data , function(returnData){
                      $('#editphoto').html( returnData)
          })

          return false; // stops browser from doing default submit process
    });
      </script>

最佳答案

文件无法序列化。您可以使用 FormData 来使用 jQuery 提交文件。

 $('#editphoto form').submit(function(){

    var formData = new FormData();
    formData.append('file2', $('input[type=file]')[0].files[0]);

    // append other form-data to formData object
    var otherData = $(this).serialize();
    $.each( otherData , function(key, field){
      formData.append(field.name, field.value);
    });

    // post form
    $.ajax({
      url: 'editphoto.php',
      data: formData,
      processData: false,
      contentType: false,
      type: 'POST',
      success: function( returnData ) {
          $('#editphoto').html( returnData)
      }
    }); 

    return false; // stops browser from doing default submit process
})

关于javascript - 当 javascript 提交表单时,文件不会发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34866031/

相关文章:

javascript - 无法解析 JSON 数组字符串

javascript - 在验收测试中调试 Ember CLI Mirage

javascript - 如何提醒我的 json 结果?

html - 启用或禁用输入如何根据选择选项的值使用 jQuery?

javascript - 通过 Ajax WordPress 加载更多帖子

javascript - 在 ajax 查询的结果上添加和触发 bootstrapvalidator

javascript - 使用 javascript 根据两个选项之一设置隐藏值

javascript - 如何使用 jQuery 过滤对象数组

javascript - 来自 AJAX 请求的响应仅显示一次

javascript - Django:Ajax 没有从服务器响应接收数据