无法通过 JS 更新隐藏字段
Posted
技术标签:
【中文标题】无法通过 JS 更新隐藏字段【英文标题】:Can't update hidden field through JS 【发布时间】:2015-12-16 06:20:35 【问题描述】:我正在处理以下让我感到沮丧的编码问题,因为我认为它应该是直截了当的。代码如下:
<input type="hidden" id="color" value="red"/>
document.getElementById("color").value="blue"
我有一个辅助 javascript 文件,它在选择新字段时侦听 onselect 事件。
然后它会读取color
元素的值,例如document.getElementById("color").value
,并对其进行处理。
如果我基本上通过 html 对隐藏字段颜色的值进行硬编码,则辅助 javascript 能够读取 color
元素的值,但是当我通过上面的 JS 设置它时就不行了。
应该是直截了当的,但由于某种原因,它没有像看起来那样设置值。
任何意见将不胜感激。
谢谢, 鲍勃
【问题讨论】:
您能否在答案中提供 HTML 代码? 我试过把它去掉,它在我的原始消息中,但只有这个: 在 java 脚本标签之前 可能是一个 jsfiddle 以及您想要实现的目标? 好的,我是这个 jsfiddle 的新手,但这里是:jsfiddle.net/7tacLpw1 它没有在那里运行,但我不完全知道你需要如何输入。但希望你能明白。 见这里:jsfiddle.net/7tacLpw1/2 【参考方案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" />
【讨论】:
是的,这似乎可行,但正如我在之前的回复中所传达的,我只是将脚本简化了,它不是包含 jsp、js 和 html 的页面的完整代码。所以我需要知道在任何 java 脚本段中调用的 document.getElement(ById) 是否实际上可以访问 html 元素。那么是否存在 java 脚本(由于位置或其他原因)无法访问 dom 元素或任何类似情况的情况?【参考方案2】:哦,该死,在 document.getElementById("color").value = "blue" 之后缺少一个分号,这似乎是罪魁祸首。
没想到JS对这个这么敏感。
难以置信,这么多年过去了,我还能在错过的分号上浪费多少时间 :)。
感谢大家的意见。 鲍勃
【讨论】:
【参考方案3】:这是个老问题 但我想如果有人还在寻找答案,那就是这里
你可以试试$('input[name="NameOfField"]').val('value');
这肯定会奏效。
当我们在提交表单时尝试更改隐藏字段的值时,它并没有更新值,因为 DOM 已经从输入参数中分离了 ID,但名称仍然存在,因为名称将在表单中传递。
如果有人觉得这很有用,并且他们不必为一个简单的解决方案工作很多小时:)
【讨论】:
以上是关于无法通过 JS 更新隐藏字段的主要内容,如果未能解决你的问题,请参考以下文章