2

次の 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 => 入力 = ""
  2. http:\localhost:8080\index.html?val=2 => 入力 = "2"
  3. http:\localhost:8080\index.html => 入力 = "2"
4

3 に答える 3

0

これはうまくいくはずです。これは 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");
 });
于 2011-01-04T14:37:41.393 に答える
0

別の方法は、ドキュメントの読み込みが完了したときに JavaScript でフィールドをクリアすることです。

于 2011-01-04T14:16:42.633 に答える
0

まったく新しいページであるとブラウザに信じ込ませるために、おそらく「ダミー」URL 変数を導入することができます。

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

JavaScriptを使用して、ブラウザに新しいランダムでページを再度プルさせますdummy=

サーバーはこの値を無視します。

これにより毎回2回のポストバックが発生することは理解していますが、確実に機能するはずです。httpヘッダーを使用して最初にキャッシュしないようにブラウザに「要求」します-ただし、あなたが言うときは信じています:

asp.netキャッシュを無効にしたくないのですが、代替手段がなくてもかまいません。ただし、キャッシュを無効にするためのすべてのGoogleヒットは機能しませんでした。

これが機能していないこと。

于 2011-01-04T14:17:54.903 に答える