我有一个哈希,并希望获取每个值并将它们放在文本字段中。我现在写出的一个问题是,这些值在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);
}
答案 0 :(得分:0)
您的脚本按预期工作(至少我理解您的意图)。我必须为每个输入添加名称属性,我使用迭代器创建不同的输入。我不确定您使用哪种语言来处理表单,但我知道有些语言会收到一个具有相同名称的属性列表(&name=Jeff&name=Jon&name=
...)。
var dataNum = "<td><input type='text' name='num" + [i] + "' value='" + data[i]["num"] + "'></td>"
我还在提交按钮上附加了一个点击处理程序,以显示它是否有效。 value属性是填充表单初始值所必需的。如果在呈现表单后更改了值,则更改的值将与表单一起提交。
使用此fiddle对其进行测试。
我不确定您为什么要在DOM中避免value=""
。您可以这样做,但是您必须在表单呈现后设置值,方法是创建另一个遍历每一行的循环,遍历该行的每个单元格,然后显示设置值。
地图的结构肯定会改变。它会添加额外的代码,完全没必要。