我很难过 - 设置表单字段的值,但它没有显示

时间:2016-07-09 04:42:10

标签: javascript html forms dom

我有一个包含3个文本输入的表单来编辑表中的记录。所有记录的3个字段的值都存储在javascript数组中。我有一个SELECT,显示表中所有记录的名称字段。当我选择一个OPTION时,javascript会填充3表单字段" values"具有该记录的值,供用户编辑.3个INPUT包含在相同的DIV容器中,3个INPUT的属性相同(除了ID和名称)。

javascript运行后,第一个字段将显示其指定的值,但其他两个字段继续显示其占位符。我可以在选择时观察开发人员工具中DOM的值更改,但表单字段中没有显示任何内容。我假设我的代码填充了INPUT值,因为DOM正在按预期更改。

我尝试更改表单中字段的顺序,现在所有3个字段都无法显示其值,而DOM仍然显示带有值的元素。将现场订单恢复原状并没有帮助。

Chrome和FireFox中的行为相同。

      document.getElementById("accountname").innerHTML         = selectedname
  document.getElementById("accountdescription").innerHTML  = jdescriptions[jnames.indexOf(selectedname)]
  document.getElementById("accountcode").innerHTML         = jcodes[jnames.indexOf(selectedname)]

This screendump image shows how the FORM and the DOM are different

坦率地说,我很难过。任何想法都赞赏。

2 个答案:

答案 0 :(得分:2)

你应该设置input元素的value属性,你不能使用innerHTML,因为我们不在输入标记之间写任何东西。 由于您要设置输入标记的innerHTML,因此屏幕截图在<input></input>之间显示另一个帐户,但这不是将为输入元素显示的值。 innerHTML属性用于Div。

等元素
document.getElementById("accountname").value = selectedname;

答案 1 :(得分:0)

当然是我!我应该将值赋给.value,而不是.innerHTML。 全部排序。