Firefox缓存隐藏的输入

时间:2012-03-20 12:52:56

标签: html5 input autocomplete hidden-field

我的表单中有一个隐藏的输入字段。我注意到如果javascript更改了该字段的值,然后用户刷新页面,则在页面重新加载时将设置相同的值。从我所看到的情况来看,这只发生在 Firefox

我已通过向隐藏的输入添加autocomplete="off"来解决了这种不受欢迎的行为,但 W3C 不喜欢此解决方案,如果我验证了该页面,则会收到错误消息:< / p>

Attribute autocomplete not allowed on element input at this point.

显然,autocomplete属性仅适用于特定输入 - see here.

那么是否有任何解决方案可以满足 W3C Firefox

2 个答案:

答案 0 :(得分:12)

要验证(我不会投入尽可能多的努力)我认为您可以在整个表单上使用autocomplete="off",然后有选择地将其重新打开,如下所示:

<!DOCTYPE html>
<html>
<head>
    <title>TEST</title>
</head>
<body>
    <form autocomplete="off">
        <input type="hidden" name="test">
        <input type="text" name="otherfield" autocomplete="on">
    </form>
</body>
</html>

我最初认为这是一个Firefox错误,但在评论中与 robertc 讨论后,我认为预期的行为取决于具体的用例。规范不允许在隐藏字段上自动完成,所以我的第一反应仍然是正确的,但Firefox的实现可能有一些很好的论据来支持它。请评论。

答案 1 :(得分:3)

或者,您可以使用<input type="text" style="display: none;" autocomplete="off" />代替。这有点像黑客,但它应该有效!

Firefox中的缓存在很多时候实际上是一个很好的功能,但是当你构建更多动态表单时它确实会引起一些问题。