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