Firefox кеширует скрытые данные - PullRequest
15 голосов
/ 20 марта 2012

У меня есть скрытое поле ввода в моей форме. Я заметил, что если значение этого поля изменяется с помощью javascript, а затем пользователь обновляет страницу, то это же значение будет установлено при перезагрузке страницы. Из того, что я видел, это происходит только в Firefox .

Я решил это нежелательное поведение, добавив autocomplete="off" к этому скрытому вводу, но W3C не понравилось это решение, и если я проверил страницу, я получил ошибку:

Attribute autocomplete not allowed on element input at this point.

Очевидно, атрибут autocomplete работает только на определенных входах - см. Здесь.

Так есть ли решение, которое удовлетворит и W3C и Firefox ?

Ответы [ 2 ]

12 голосов
/ 20 марта 2012

Чтобы проверить (что я не приложил бы столько усилий, как вы), я думаю, вы могли бы использовать 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 может иметь несколько хороших аргументов в поддержку этого. Пожалуйста, прокомментируйте.

3 голосов
/ 12 февраля 2014

В качестве альтернативы, вы можете использовать <input type="text" style="display: none;" autocomplete="off" /> вместо. Это что-то вроде хака, но оно должно работать!

Кэширование в Firefox на самом деле довольно хорошая функция в большинстве случаев, но оно вызывает некоторые проблемы при создании более динамичных форм.

...