首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >存储动态用户输入的JS和/或D3方法

存储动态用户输入的JS和/或D3方法
EN

Stack Overflow用户
提问于 2017-04-15 06:26:50
回答 1查看 69关注 0票数 1

我的问题类似于这里提出的一个问题:storing user input in array

我的用例在一个关键方面是不同的,--我没有静态输入。在任何时候,我的页面上都可能有1到3个用户的输入。它们也会被动态删除,所以我不能只创建它们,然后根据需要对它们进行样式设置,比如使用display:hidden;

,我的问题是:是一个js解决方案,它可以将用户输入存储到一个对输入健壮的数组中,如果元素还没有被附加(!==null)的话,如果元素还没有追加,那么这些输入可能或者可能没有为每个数组添加一个if子句。

如果有一种比原生javascript更简单的方法将数字输入存储到数组中,那么这也是一个可以接受的答案。我假设了这个选择:d3.selectAll('#input1,#input2,#input3'),但我不确定是否可以从这样的选择中检索值并将其存储在数组中。

下面是一个经过改进的示例:

文档可能有3个输入,但假设文档的当前状态只有2个ID输入:#input1#input2。因此,我需要存储现有输入的值,以及#input3的0,因为它还没有创建。我不知道如何用这些需求创建数组理解。我在想:

代码语言:javascript
复制
my_array.push(d3.selectAll('#input1,#input2,#input3').each().value())

但正如我前面所说的,我希望数组包含每个输入的值。push()只需将另一项添加到数组中。如果事件侦听器被触发超过3次,则数组将超过3个值,这不是我想要的。我只想要一个数组,该数组使用所有现有数字输入的当前值进行更新(如果尚未附加输入,则值为0)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-15 07:55:18

你的问题不太清楚,但在我看来,你似乎想得到输入的所有值,而不知道页面上有多少输入。

如果是这样的话,你可以简单地使用..。

代码语言:javascript
复制
d3.selectAll("input[type=number]")

.,它将在调用函数时获取页面上的所有输入。

下面是一个演示,请看控制台:

代码语言:javascript
复制
d3.select("button").on("click", function() {
  var inputs = [];
  d3.selectAll("input[type=number]").each(function() {
    inputs.push(this.value);
  })
  console.log(inputs);
})
代码语言:javascript
复制
<script src="https://d3js.org/d3.v4.min.js"></script>
<div id="form">
  <h1><b>Please enter data</b></h1>
  <hr size="3" />
  <br>
  <label for="input 1">Input 1</label>
  <input id="input1" type="number">
  <br>
  <label for="input 2">Input 2</label>
  <input id="input2" type="number">
  <br>
  <label for="input 3">Input 3</label>
  <input id="input3" type="text">
  <br>
  <hr>
</div>
<button>Submit</button>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43422962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档