Firefox缓存隐藏的输入

tam*_*mir 16 html5 autocomplete input hidden-field

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

我通过添加autocomplete="off"隐藏的输入解决了这个不需要的行为,但W3C不喜欢这个解决方案,如果我验证页面,我得到错误:

Attribute autocomplete not allowed on element input at this point.
Run Code Online (Sandbox Code Playgroud)

显然,该autocomplete属性仅适用于特定输入 - 请参见此处.

那么有什么解决方案可以满足W3CFirefox的需求吗?

jml*_*nik 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>
Run Code Online (Sandbox Code Playgroud)

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

  • @robertc,可以由用户编辑的字段缓存很好,是的,但是可以缓存隐藏的字段吗?!?!这有什么用处或功能?我相信FF团队根本没有考虑过该用例,也没有正确实施规范。 (2认同)