3

我正在处理以下让我感到沮丧的编码问题,因为我认为它应该是直截了当的。这是代码:

<input type="hidden" id="color" value="red"/>

document.getElementById("color").value="blue"

我有一个辅助 javascript 文件,它在选择新字段时侦听 onselect 事件。

然后它会读取color元素的值,例如document.getElementById("color").value并用它做一些事情。

如果我基本上通过 HTML 对隐藏字段颜色的值进行硬编码,则辅助 javascript 能够读取color元素的值,但是当我通过上面的 JS 设置它时,它不是。

应该是直截了当的,但由于某种原因,它并没有像看起来那样设置值。

任何投入将不胜感激。

谢谢,鲍勃

4

3 回答 3

1

似乎工作正常,你能检查控制台是否有错误?

document.getElementById("color").value = "blue";
var theColor = document.getElementById("color").value;
document.write("Hidden color is: <strong style='color:" + theColor + "'>" + theColor + "</strong>");
<input type="hidden" id="color" value="red" />

于 2015-09-19T03:29:14.903 回答
1

哦,该死的,在 document.getElementById("color").value = "blue" 之后缺少一个分号,这似乎是罪魁祸首。

没想到JS对这个这么敏感。

令人难以置信的是,这么多年过去了,我还能在错过的分号上浪费多少时间 :)。

谢谢各位的意见。鲍勃

于 2015-09-19T16:24:48.563 回答
0

这是老问题但我想如果有人还在寻找答案,那就是

你可以试试$('input[name="NameOfField"]').val('value');这肯定会奏效。

当我们在提交表单时尝试更改 Hidden 字段的值时,它没有更新值,因为 DOM 已经从输入参数中分离了 ID,但 name 仍然存在,因为 name 将在表单中传递。

如果有人发现这很有用,并且他们不必为简单的解决方案工作很多时间:)

于 2020-07-24T18:50:42.660 回答