隐藏输入元素的Javascript和defaultValue

wst*_*wst 16 javascript dom

假设你有输入元素:

<input id="aaa" type="text" value="unchanged" />
Run Code Online (Sandbox Code Playgroud)

然后启动js脚本:

var e = document.getElementById("aaa");
e.value = "changed";
alert(e.defaultValue + "/" + e.value);
Run Code Online (Sandbox Code Playgroud)

结果将"未更改/更改".不幸的是,当你的输入元素是hidden:

<input id="aaa" type="hidden" value="unchanged" />
Run Code Online (Sandbox Code Playgroud)

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

Poi*_*nty 12

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

是DOM规范的相关部分.

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