如何使用 HTML 获取用户输入以在 JS 中处理?

阿瓦克

我的网站有一堆由两个字段组成的行(与用户需要的一样多)。我希望用户填写所有字段,然后提交。但是,我相信这都可以在客户端处理,因为我想在 javascript 代码中使用字段值。

这是 html 代码:

<div class="players">
  <div id="wrapper">
    <span>Name: <input type="text"> Dex modifier:  <input type="text"></span>
  </div>

  <input type="button" value="add player" onclick="add_fields()">
  <input type="button" value="submit" onclick="submit()">

</div>

和我的 javascript 函数

function add_fields() {
  document.getElementById("wrapper").innerHTML += '<br><span>Name: <input type="text"> Dex modifier:  <input type="text"></span>\r\n'
}

我需要一种方法来获取所有表单值(现在使用未编写的函数 submit())并将它们存储为变量。

埃米尔·祖比尔

<form>在同时处理多个输入时使用元素是一种很好的做法形式元件可以访问所有的它具有在其内部的输入。这样您就不必选择每个单独的输入,而是可以一起选择和处理它们。

所以从表单包装开始。然后,而不是侦听onclick<input type="button" value="submit" onclick="submit()">,监听submit表单元素上的事件。

使用该.addEventListener()方法侦听事件被认为是最佳实践通过这种方式,您可以将多个事件处理程序设置为单个事件,而无需覆盖元素onclickoronsubmit属性。Chris Baker 在这篇 SO post 中做了出色的解释

那么现在你有了一个表单,我们如何从中获取数据呢?您可以使用现代类FormDataFormData创建一个可迭代对象,这意味着我们可以使用for..of循环遍历它,它将输入的所有名称和值保存在一个表单中。它还具有从对象中添加、删除和获取键或值的方法。FormData构造可以采用<form>单元作为像这样的说法:

var formElement = document.querySelector('form'); // Select the form.
var formData = new FormData(form); // Pass the form into the FormData class.

现在formData变量保存了表单的所有名称和值。

我添加了一个工作示例供您试用。请阅读我提供给您的文档,以了解正在发生的事情以及您可以用它做什么。

快速旁注:FormDatafor..of循环相对较新,在IE浏览器不支持。如果这是一个交易破坏者,我建议您不要使用FormData构造函数,而是简单地遍历表单中的元素。

编辑:我改变循环从formData.values()formData获得无论是namevalue每个输入的属性。这与MDN 文档中formData.entries()显示的相同

// Create storage for the values.
var values = [];

// Get the form element.
var form = document.getElementById('form');

// Add the submit event listener to the form.
form.addEventListener('submit', submit);

function submit(event) {

  // Get the data from the form.
  // event.target represents the form that is being submitted.
  var formData = new FormData(event.target);
  
  // Loop over each pair (name and value) in the form and add it to the values array.
  for (var pair of formData) {
    values.push(pair);
  }
  
  // Log the values to see the result.
  console.log(values);
  
  // Prevent the form from default submitting.
  event.preventDefault();
}
<div class="players">

  <!-- Wrap a form around the inputs -->
  <form id="form">
  
    <div id="wrapper">
      <span>Name: <input type="text" name="name"> Dex modifier:  <input type="text" name="dex"></span>
    </div>

    <input type="button" value="add player" onclick="add_fields()">

    <!-- Notice type="submit" instead of type="button". This is important -->
    <input type="submit" value="submit">
    
  </form>
  
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获取用户输入-批处理?

来自分类Dev

Javascript:如何获取用户输入并将其存储到没有任何HTML的变量中?

来自分类Dev

如何获取用户输入并将其存储在向量中?

来自分类Dev

如何在fopen中获取用户输入

来自分类Dev

如何从for循环索引的标准输出中获取用户输入

来自分类Dev

如何在 Hadoop 2.7.5 中获取用户输入?

来自分类Dev

如何在applescript中获取用户语音输入

来自分类Dev

如何从不同的类中获取用户输入

来自分类Dev

如何在R中以批处理方式获取用户输入?

来自分类Dev

如何在html中获取用户设备的高度

来自分类Dev

获取Node.js以从HTML文本字段获取用户的输入?

来自分类Dev

如何使用格式HTML从Jenkins Active Choice参数获取用户输入

来自分类Dev

如何使用 process.stdin 在 nodejs 中获取用户输入以获取 Hackerearth 代码

来自分类Dev

如何在 PL/sql Cursor FOR LOOP 中获取用户输入并根据用户输入更新表?

来自分类Dev

如何使用 HTML 或 PHP 或 JS 处理表单中的动态复选框输入

来自分类Dev

使用弹出窗口获取用户输入并在OpenERP中的按钮功能中使用这些输入

来自分类Dev

如何通过仅在Android中输入用户ID来获取用户github存储库

来自分类Dev

从反应的输入字段获取用户输入,类似于使用props在反应本机中的getElementById

来自分类Dev

如何通过在php mqsql中获取用户的输入来显示数据库中的数据?

来自分类Dev

如何在node.js中读取用户输入以进行简单计算

来自分类Dev

如何在node.js中读取用户输入以进行简单计算

来自分类Dev

如何在GNU Guile中读取字符串以获取用户输入?

来自分类Dev

如何从NumPy数组的一行中获取用户输入?

来自分类Dev

如何在离子搜索栏中获取用户输入的文本

来自分类Dev

如何从Visual Basic的列表框中获取用户输入?

来自分类Dev

如何获取用户输入以在openpyxl中显示单元格数据?

来自分类Dev

如何从qdateEdit获取用户输入并从postgres中的数据库中选择它

来自分类Dev

R Shiny:如何从DT数据表的搜索框中获取用户输入?

来自分类Dev

如何从jquery ui对话框中获取用户输入

Related 相关文章

  1. 1

    如何获取用户输入-批处理?

  2. 2

    Javascript:如何获取用户输入并将其存储到没有任何HTML的变量中?

  3. 3

    如何获取用户输入并将其存储在向量中?

  4. 4

    如何在fopen中获取用户输入

  5. 5

    如何从for循环索引的标准输出中获取用户输入

  6. 6

    如何在 Hadoop 2.7.5 中获取用户输入?

  7. 7

    如何在applescript中获取用户语音输入

  8. 8

    如何从不同的类中获取用户输入

  9. 9

    如何在R中以批处理方式获取用户输入?

  10. 10

    如何在html中获取用户设备的高度

  11. 11

    获取Node.js以从HTML文本字段获取用户的输入?

  12. 12

    如何使用格式HTML从Jenkins Active Choice参数获取用户输入

  13. 13

    如何使用 process.stdin 在 nodejs 中获取用户输入以获取 Hackerearth 代码

  14. 14

    如何在 PL/sql Cursor FOR LOOP 中获取用户输入并根据用户输入更新表?

  15. 15

    如何使用 HTML 或 PHP 或 JS 处理表单中的动态复选框输入

  16. 16

    使用弹出窗口获取用户输入并在OpenERP中的按钮功能中使用这些输入

  17. 17

    如何通过仅在Android中输入用户ID来获取用户github存储库

  18. 18

    从反应的输入字段获取用户输入,类似于使用props在反应本机中的getElementById

  19. 19

    如何通过在php mqsql中获取用户的输入来显示数据库中的数据?

  20. 20

    如何在node.js中读取用户输入以进行简单计算

  21. 21

    如何在node.js中读取用户输入以进行简单计算

  22. 22

    如何在GNU Guile中读取字符串以获取用户输入?

  23. 23

    如何从NumPy数组的一行中获取用户输入?

  24. 24

    如何在离子搜索栏中获取用户输入的文本

  25. 25

    如何从Visual Basic的列表框中获取用户输入?

  26. 26

    如何获取用户输入以在openpyxl中显示单元格数据?

  27. 27

    如何从qdateEdit获取用户输入并从postgres中的数据库中选择它

  28. 28

    R Shiny:如何从DT数据表的搜索框中获取用户输入?

  29. 29

    如何从jquery ui对话框中获取用户输入

热门标签

归档