Firefox скрывает скрытые входы
У меня есть скрытое поле ввода в моей форме. Я заметил, что если это значение поля изменяется javascript, а затем пользователь обновляет страницу, это же значение будет установлено при перезагрузке страницы. Из того, что я видел, это происходит только в Firefox.
Я решил это нежелательное поведение, добавив autocomplete="off"
к этому скрытому вводу, но W3C не нравится это решение, и если я проверяю страницу, я получаю ошибку:
Attribute autocomplete not allowed on element input at this point.
По-видимому, атрибут autocomplete
работает только на определенных входах - здесь.
Итак, есть ли какое-либо решение, которое удовлетворит как W3C, так и Firefox?
Ответы
Ответ 1
Чтобы проверить (к чему я бы не приложил столько усилий, как вы), я думаю, вы могли бы использовать 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 может иметь некоторые хорошие аргументы для ее поддержки. Прокомментируйте.
Ответ 2
В качестве альтернативы вы можете использовать <input type="text" style="display: none;" autocomplete="off" />
. Это немного взломать, но это должно сработать!
Кэширование в Firefox на самом деле довольно хорошая функция во много раз, но это вызывает некоторые проблемы при создании более динамических форм.