Обновить проблему в Firefox - PullRequest
       26

Обновить проблему в Firefox

1 голос
/ 21 августа 2009

На моей странице asp есть одно имя текстового поля "ProductName"

Если я напишу что-нибудь в этом текстовом поле и обновлю эту страницу, текстовое поле не будет ясно в Firefox. Но я открываю эту же страницу в Интернете, исследую и пишу что-нибудь в текстовом поле и обновляю страницу, мое текстовое поле становится ясным

почему текстовое поле не отображается в FireFox?

Это HTML-код

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
</head>
<body>
<input type="text" id="ProductName" name="ProductName" style="width:235; height:20" value="">
</body>
</html>

Ответы [ 8 ]

10 голосов
/ 21 августа 2009

Это особенность Firefox (мне она очень нравится). С серверной стороны ничего не поделаешь.

РЕДАКТИРОВАТЬ:

Более длинная версия: есть кое-что, что вы можете сделать, но это очень грязно. В основном, способ, которым Firefox реализует это, заключается в том, что он заполняет элементы формы с тем же именем, когда пользователь нажимает кнопку обновления.

Обходной путь - изменять атрибут name в элементах HTML-формы при каждой загрузке страницы. То, как вы отслеживаете то, что вы их изменяете, также остается на ваше усмотрение, но позвольте мне сказать, что как сам пользователь Firefox, наличие веб-сайта сделало бы это бесконечным раздражением.

6 голосов
/ 18 июня 2010

"На самом деле Firefox тупой таким образом." - да, это так.

Другим способом было бы установить autocomplete = "off" на входе

4 голосов
/ 05 апреля 2012

Вы можете добавить атрибут autocomplete="off" к входным данным, как показано ниже, и это должно решить проблему.

<input type="text" id="ProductName" name="ProductName" style="width:235; height:20" value="" autocomplete="off">
3 голосов
/ 03 сентября 2010

Firefox не так глуп. Это подходящее поведение, потому что, вероятно, div, в котором вы замираете, происходит на событии, например onclick, onchange и т. д. И так как это событие не запускается при обновлении, у firefox нет причин показывать свой div. Вы несете ответственность за написание js, необходимого для запуска событий при загрузке или когда документ готов.

Вернуться к теме: простое решение - установить для атрибута автозаполнения вашей формы значение 'off'

Вот и все.

3 голосов
/ 01 июня 2010

На самом деле Firefox тупой таким образом. Допустим, у вас есть флажок, и когда пользователь нажимает, чтобы активировать этот флажок, появляется div, который должен исчезнуть. Проблема в том, что если вы обновите страницу, ваш флажок останется активным, но ваш div будет скрыт. Они (firefox) не думали об этом все время, и это .. ну глупо. Из-за этого вы должны прибегнуть к JS обходные пути, которые (я не совсем люблю).

Я согласен с тем, что вам нужно иметь в одном месте одно и то же значение внутри некоторого ввода, например, когда вы отправляете страницу, возникает ошибка, и вам нужно перенаправить пользователя обратно на страницу, содержащую форму. Тогда да, ладно! Вам нужны значения ... но сохранять значения при обновлении, ну, это просто глупо.

Какой пользователь вводит свои данные и затем просто думает: «Хм, я просто нажму f5, теперь посмотрим, что произойдет». Если это тот тип пользователей, который «роумингит» вокруг вашего сайта, пожалуйста, закройте его, он наполнен глупостью

Хорошо, теперь это не так.

"изменять атрибут name в элементах HTML-формы при каждой загрузке страницы" это плохая идея, не делай этого ...

вместо этого вы можете использовать функцию js, которая просто получает ввод и устанавливает значение ""

onpageload:
document.getElementById('inp1').value = '';
document.getElementById('inp2').value = '';
document.getElementById('inp3').value = '';

и так далее, и тому подобное. Постскриптум это всего лишь пример, ваша работа - увидеть, что подходит вам (будь то jquery, prot или что-то еще); чтобы увидеть, используете ли вы цикл for или нет; и т.д.

1 голос
/ 03 июля 2014

HTMLFormElement экземпляры наследуют метод reset.

Может использоваться для очистки всех форм до значений по умолчанию:

for(var i=0; i<document.forms.length; ++i)
    document.forms[i].reset();
0 голосов
/ 06 января 2016

Вы можете использовать команду Ctrl + Shift + R для принудительной перезагрузки (не из кэша) (см. Ярлыки навигации по страницам на http://www -archive.mozilla.org / docs / end-user /moz_shortcuts.html)

0 голосов
/ 17 января 2015

для этой проблемы добавьте

autocomplete="off"

атрибут ввода тега, например:

<input type="text" autocomplete="off" id="ProductName" name="ProductName" style="width:235; height:20" value="">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...