繁体   English   中英

在for循环中分配输入值

[英]Assigning input values in a for-loop

我有一个哈希,并希望获取每个值并将它们放在文本字段中。 我现在写出的一个问题是,这些值在HTML中是硬编码的,因此如果用户在文本字段中进行更改,则在提交表单时将忽略它们。 有没有什么方法可以从哈希中插入数据而不将它们显式写为value属性但仍然可以在提交时处理?

HTML

<form action="">
  <table></table><br />
  <input type="submit" />
</form>

JS

var data = [{name: "Object One", num: 1}, {name: "Object Two", num: 2}, {name: "Object Three",num: 3}];

for (var i = 0; i < data.length; i++) {
  var dataNum   = "<td><input type='text' value='" + data[i]["num"] + "'></td>",
      dataName  = "<td><input type='text' value='" + data[i]["name"] + "'></td>";
  var $tr = "<tr>" + dataNum + dataName + "</tr>";

  $("table").append($tr);
}

您的脚本按预期工作(至少我理解您的意图)。 我必须为每个输入添加名称属性,我使用迭代器创建不同的输入。 我不确定您使用什么语言来处理表单,但我知道有些语言会收到一个具有相同名称的属性列表( &name=Jeff&name=Jon&name= ...)。

var dataNum   = "<td><input type='text' name='num" + [i] + "' value='" + data[i]["num"] + "'></td>"

我还在提交按钮上附加了一个单击处理程序,以显示它是否有效。 value属性是填充表单初始值所必需的。 如果在呈现表单后更改了值,则更改的值将随表单一起提交。

用这个小提琴来测试它。

我不确定你为什么要在DOM中避免使用value="" 您可以这样做,但是您必须在表单呈现后设置值,方法是创建另一个遍历每一行的循环,遍历该行的每个单元格,然后显示设置值。

地图的结构肯定会改变。 它会添加额外的代码,完全没必要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM