And*_*age 15 google-chrome back-button hidden-fields browser-history
我有一个ASP.Net Web表单,其中包含文本框字段和隐藏字段.使用客户端JavaScript动态修改隐藏字段值.发布表单,检查值并重定向到另一个页面都按预期工作.
但是,当我使用浏览器后退按钮显示上一页时,我希望看到所有表单字段仍然填充了已发布的值.
在IE和Firefox中,文本和隐藏输入字段都是这种情况.
在Chrome中,这仅适用于文本字段.隐藏字段的值丢失.
在导航浏览器历史记录时,Chrome是否真的会重新填充动态设置隐藏的表单字段值?
我已经将一个小样本放在一起以证明问题,如果需要可以提供.我想先问问题,看看这是否是众所周知的行为,我必须接受.
小智 17
这个问题可以通过一个小技巧来解决.
问题是带有Type = hidden的表单字段,Chrome浏览器无法正确处理动态设置值.
因此,解决方案是将字段类型更改为文本,并使用其他方法隐藏可见文本框.这可以通过包含所有意图被DEV标签对隐藏的值的文本框并将样式指定为display来实现:none
然后在页面上,您将看不到带有隐藏值的文本框,它将与浏览器的JavaScript一起正常工作.
<input type=hidden name=item_no value=00001>
Run Code Online (Sandbox Code Playgroud)
<div style="display: none">
<input type=text name=item_no value=00001>
</div>
Run Code Online (Sandbox Code Playgroud)
你不应该依赖这种行为。它在浏览器之间是不同的,甚至在浏览器版本之间也是如此。任何标准中都没有描述这种行为。如果您希望您的字段具有特定值,您可以使用 cookie,或者在页面加载时始终向服务器发出请求,或者使用更现代的方法,如本地存储(虽然它没有得到广泛支持)。
| 归档时间: |
|
| 查看次数: |
11096 次 |
| 最近记录: |