Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在for循环中指定输入值_Javascript_Jquery_Html_Forms - Fatal编程技术网

Javascript 在for循环中指定输入值

Javascript 在for循环中指定输入值,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我有一个散列,希望获取这些值中的每一个,并将它们放入文本字段中。我现在写出来的一个问题是,这些值是在HTML中硬编码的,因此,如果用户要在文本字段中进行更改,则在提交表单时将忽略这些更改。是否有任何方法可以从散列中插入数据,而不将它们显式地写为值属性,但仍然在提交时进行处理 HTML <form action=""> <table></table><br /> <input type="submit" /> </form&

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

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);
}
var data=[{name:“Object One”,num:1},{name:“Object Two”,num:2},{name:“Object Two”,num:3}];
对于(变量i=0;i
您的脚本按预期运行(至少我理解您的预期)。我必须向每个输入添加名称属性,我使用迭代器创建不同的输入。我不确定您使用什么语言来处理表单,但我知道有些人会收到一个同名属性列表(
&name=Jeff&name=Jon&name=
…)

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

用这个来测试它

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


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

我不会得到“没有将它们显式写入值属性”部分,但要作为表单数据的一部分提交,输入必须指定
name
属性。正确。还可以使用更新动态生成元素的值。on@CarlEdwards-这并没有使情况更清楚。如果不需要
value
属性,请不要编写它。value属性只是用作初始默认值。如果用户编辑该字段,则更改后的值将被提交。@CarlEdwards-您错误地认为
jQuery.val()
除了为html输入指定元素值属性外,还执行其他操作。
var dataNum   = "<td><input type='text' name='num" + [i] + "' value='" + data[i]["num"] + "'></td>"