【问题标题】:FormData won't load inputs of formFormData 不会加载表单的输入
【发布时间】:2022-01-19 14:37:51
【问题描述】:

我的代码

<!DOCTYPE html>
<html>

<body>
  <div id="form-sample">
    <form enctype="multipart/form-data">
      <input type="text" name="sample-text" />
      <input type="radio" name="sample-radio" value="yes" />
      <input type="radio" name="sample-radio" value="no" />
      <input type="file" name="images[]" multiple="multiple" />
      <input type="submit" value="Fetch Data" />
    </form>
  </div>

  <script>
    function onSubmitForm(e) {
      e.preventDefault();
      const fD = new FormData(document.querySelector("#form-sample form"));
      console.log(fD.entries()); // get an empty FormData Iterator
    }

    document.addEventListener('DOMContentLoaded', function(e) {
      document.querySelector("#form-sample form").addEventListener("submit", onSubmitForm, false);
    });
  </script>
</body>

</html>

为什么 FormData 不加载 &lt;form&gt; 输入,为什么不返回异常?

实际上在最新的 Firefox 版本 (v95.0) 上尝试此代码

【问题讨论】:

  • 您如何确定 FormData 迭代器为空,仅来自 console.log?我会使用console.log(Array.from(fD.entries()).length)
  • 谢谢! @HereticMonkey 解决了我所有的问题
  • &lt;input&gt;s 是硬编码的 HTML,因此它们自然而然地像往常一样呈现。你的意思是加载,所以你会看到他们登录console

标签: javascript html forms


【解决方案1】:

【讨论】:

  • OP 声称迭代器为空。此外,只是文档链接的答案很少是好的答案。最好展示演示如何使用链接命令的代码。
  • “只是文档链接的答案很少是好的答案” - 不幸的是,并不是每个人都在提问之前通读了文档。无论如何,我无法准备比文档中的代码示例更好的代码示例。
  • 您可以使用 OP 的代码准备一个示例。他们已经在使用entries;只需输入fD.get('nameOfElement')...
猜你喜欢
  • 2021-09-28
  • 2016-11-11
  • 2016-09-30
  • 1970-01-01
  • 2019-02-17
  • 2015-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多