Нажатие кнопки назад заполняет ввод значениями справа перед отправкой - PullRequest
2 голосов
/ 04 января 2011

Со следующим htlm:

<html>
    <body>
        <form action="#">
            <p><input type="text"></input></p>
        </form>
    </body>
</html>

При нагрузке вход имеет пустое значение.Измените его на «1» и введите (отправить). На странице будет отображаться «1». Нажатие кнопки «Назад» приведет к заполнению страницы введенным значением «1» вместо исходного состояния (пусто)

Мое реальное приложениестраница asp.net, где верхняя часть страницы содержит входные данные для поиска, а нижняя - результаты.При нажатии назад поля предварительно заполняются значениями, которые не соответствуют значениям, показанным в результатах, показанных ниже.

Как сделать так, чтобы кнопка «Назад» браузера заполняла страницу значениями, соответствующимис начальным состоянием соответствующей страницы истории?

Я бы предпочел не отключать кэш asp.net, но не возражал бы, если нет альтернативы.Все хиты Google для отключения кеша не сработали.

ОБНОВЛЕНИЕ
Я думаю, что значение входных данных должно соответствовать начальному состоянию записи в списке истории,Это не похоже на случай.Это соответствует состоянию непосредственно перед публикацией.

  1. http: \ localhost: 8080 \ index.html => input = ""
  2. http: \ localhost: 8080 \ index.html? val = 2 => input = "2"
  3. http: \ localhost: 8080 \ index.html => input = "2"

Ответы [ 3 ]

0 голосов
/ 04 января 2011

Возможно, вы могли бы ввести «фиктивную» переменную URL, чтобы заставить браузер поверить, что это совершенно новая страница.

www.example.com/form.aspx?dummy=3423902

Используйте некоторый JavaScript, чтобы браузер снова перетягивал страницу с новым случайным значением dummy=

Сервер просто игнорирует это значение.

Я понимаю, что это будет вызывать 2 обратных передачи каждый раз, но, безусловно, должно работать. Работайте над тем, чтобы «попросить» браузер не кэшировать сначала, используя заголовки http - хотя я верю, когда вы говорите:

Я бы предпочел не отключать asp.net кеш, но не против, если нет альтернатива. Все хиты Google для отключение кеша не сработало.

Что это не работает.

0 голосов
/ 04 января 2011

Это должно работать. Это функция jquery, так что вам нужно, чтобы ссылка на нее была на вашей странице. Как пример, это установит значение элемента ввода в "A" ...


$(document).ready(function() {
    // this code will be run immediately after the page has displayed.
    // "ROpt" is the id of the field.
    $("#ROpt").val("A");
 });
0 голосов
/ 04 января 2011

Альтернативой является очистка полей с помощью JavaScript после завершения загрузки документа.

...