現在ウェブサイトを作成していますが、ページのリロード時にフォーム データを保持する簡単な方法が必要です。これを行うことは可能ですか?JavaScriptでできると思っていました。とにかく、これを行う方法について何かアイデアがあればコメントしてください。ありがとう!
2 に答える
クライアント経由でフォーム データを保存し、送信/リセット時にクリアするsisyphus.jsを見てください。localStorage
ドキュメントから直接の簡単な例:
$('form').sisyphus();
記録のために、利用可能な他のライブラリ/ソリューションもあります
これがクライアント側である必要がない場合は、フォームを時々サーバーに送信して、後で取得できるようにしてください。jQuery の serialize() を使用して ajax 投稿を送信するようなものです ( http://api.jquery.com/serialize/を参照)。サーバーでは、これをメモリ (セッション状態) に保持するか、長期間可能にする必要がある場合は DB に永続化できます。
より良い解決策は、window.onbeforeunload イベントをキャッチし、フォーム データをサーバーまで ajax してから、リロードでフォームがサーバーから再取得されたときにポストされたデータを使用することです。
ただし、一部のブラウザーが既にこれを試みていることに気付いたので、注意してください。私が思い出す限りでは、FireFox は実際にフォームの状態を保持しようとします。そのため、2 つのアプローチ (あなたのアプローチとブラウザーのアプローチ) が一部のブラウザーで衝突しないようにしてください。