隐藏输入元素的Javascript和defaultValue

时间:2011-03-16 00:27:30

标签: javascript dom

假设您有输入元素:

<input id="aaa" type="text" value="unchanged" />

然后启动js脚本:

var e = document.getElementById("aaa");
e.value = "changed";
alert(e.defaultValue + "/" + e.value);

结果将“未更改/更改”。不幸的是,当你的输入元素是hidden时:

<input id="aaa" type="hidden" value="unchanged" />

...相同的js脚本似乎不再起作用了。结果“已更改/更改”。 这是一种正确的方法吗?如果是这样,为什么只有隐藏的表单元素表现不同?

2 个答案:

答案 0 :(得分:12)

“defaultValue”属性仅以您对“text”,“file”和“password”字段显然期望的方式进行维护。

Here是DOM规范的相关部分。

我怀疑这是因为用户活动本身无法改变隐藏元素的值。如果要保留初始值,请在“load”或“ready”处运行某些内容以将值存储在某处。

答案 1 :(得分:3)

对于隐藏的输入元素,defaultValue 实际上未实现。您获得相同结果ast .value的原因是因为您使用的浏览器只是默认值。

有关Firefox的讨论,请参阅here