1

「ある種のフォーム」を含む非常に複雑なウィジェットを作成しました。フォームタグがありますが、Ajaxなどを介してたくさんのものをロードしています。詳細に説明できず、コードが長すぎてここに貼り付けることができません。

ここで、フォームフィールドの1つに使用する「live('click'、function()」で、別のフォームの非表示フィールドにいくつかの値を書き込んでいます。これは、生成されたコードですが、ページを離れて戻るボタンを押すと、値が失われます。

ただし、ライブクリック機能の外部でこれらのフィールドにいくつかの値を書き込んだ場合、ページを離れて戻るボタンを使用して戻ったときに、それらの値はまだそこにあります。

ただし、ライブクリック関数の非表示フィールドに値を書き込む必要があります(フォームのフィールドの値をフィールドに挿入しています)。

何が原因なのかわかりませんが、回避策を見つけることができませんでした(たくさん試しましたが)。

何か案は?

ありがとう!

4

3 に答える 3

0

jquery履歴プラグイン(http://plugins.jquery.com/project/history)をご覧ください

于 2009-08-13T19:49:21.923 に答える
0

通常、ブラウザはフォームに入力した内容を記憶しているため(送信しなくても)、戻るボタンを押すと、表示されているすべてのフィールドに入力されます。

隠しフィールドの場合はそうではないようです。ただし、回避策があります。

非表示フィールドの1つが変更されるたびに、URLに#partを追加できます(例:www.mysite.com/users#userId,groupId、...)。

ページが再度読み込まれると(たとえば、戻るボタンを使用して)、#partが含まれます。文字列として解析して、非表示フィールドにデータを入力する方法とデータを入力する方法を決定します。

jQueryの履歴プラグインを確認して、#partの読み方を確認してください。
http://plugins.jquery.com/files/jquery.history.js_0.txt

于 2009-08-13T19:50:03.590 に答える
0

入力タイプの代わりにCSSを使用して入力を非表示にします。

<input type="text" id="foo" name="foo" style="display: none;" />

それ以外の

<input type="hidden" id="foo" name="foo" />

私は同じ問題につまずきました、そしてこれはそれを解決するようです。

于 2012-01-04T18:49:37.420 に答える