javascript - 使用表单元素中的数据集获取 FormData 的内容

标签 javascript jquery html forms

我有formData来自<form>元素,我想获取表单内元素的内容,但使用 formData 。如您所见,我没有使用 formData.append() 。另外,请不要发布带有 form.find('input').val() 的答案。 ,因为它没有回答我的问题。我会用formData在 ajax 中,这就是我在这里的原因。

简单的例子:

$(function() {
    var form = $('#test');

    form.on('submit', function(e) {
        e.preventDefault();
        var formData = new FormData(form[0]);
        console.log(formData.get('file'));
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form enctype="multipart/form-data" id="test">
  <input type="file" name="file" accept="image/*">
  <input type="submit">
</form>

最佳答案

您可以通过使用元素的 id 来做到这一点。

console.log($('#image').get(0).files[0]);

<input type="file" name="file" accept="image/*" id="image">

可以使用 each 附加多个文件

var data = new FormData();
$.each($('#image')[0].files, function(i, file) {
    data.append('file-'+i, file);
});

//Program a custom submit function for the form
$("form#test").submit(function(event){
  //disable the default form submission
  event.preventDefault();
  //Other data
  console.log($(this).serialize());
  //File data
  console.log($('#image').get(0).files);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form enctype="multipart/form-data" id="test" method="post">
  <input type="text" name="firstname">
  <input type="text" name="lastname">
  <input type="file" name="file" id="image">
  <input type="submit">
</form>

关于javascript - 使用表单元素中的数据集获取 FormData 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39701310/

相关文章:

javascript - 解构和重命名属性

javascript - 单击另一个 <select> 时更改选中的单选按钮

php - 返回正确的 JSON 响应

javascript - jQuery 未运行,没有错误消息。语法错误?

javascript - 谷歌地图不显示? Cordova 插件

html - `:visited` 伪类如何被 `:link` 伪类覆盖?

asp.net - 在 CSS 中拉伸(stretch)背景图像

javascript - 使用字典映射 API 响应并创建对象数组,尝试删除重复项

javascript - 如何将 Visualforce 组件中的脚本中的值传递到其 Controller

javascript - 在 Canvas 上绘图