ユーザーが任意の投稿にコメントするページを取得しました。各投稿には、js から動的に作成された textarea フィールドが 1 つだけのフォームがあり、ユーザーが入力したコメントを保存および復元する方法について誰かがアイデアを持っているかどうか疑問に思っています (つまり、ajax が更新される前に、ユーザーがこれまでに入力したものを保存します)。すべての投稿とコメントを保持する div を保持し、div の更新後に元に戻します)
この周りに何かを作成しようとしましたが、動作しませんでした:
<textarea id="comment_field" onKeyUp="return saveAndRestoreTypedStrings(this)"></textarea>
or
<textarea id="comment_field" onchange="saveAndRestoreTypedStrings(' + id + ');"></textarea>
関数:
function saveAndRestoreTypedStrings(id){
document.getElementById("post_comment").onchange = function() {
localStorage['post_comment'] = document.getElementById(id).value;
}
window.onload= function(){
if(localStorage['post_comment'])
document.getElementById(id).value = localStorage['post_comment'];
}
}
ユーザーが使用しているフォームを識別するには、そのフォームの一意の ID を saveAndRestoreTypedStrings(id) 関数に渡す必要がありました。
わかりやすくするために、ajax は、各投稿に対して行われたすべての投稿とコメントを保持する div のみを更新します。そのため、その div は最新の投稿とコメントのために 3 秒ごとに更新され、ユーザーが投稿にコメントするために入力しているときに ajax が div コンテンツをリロードすると、ユーザーは入力内容を失います。
これについてのアイデアをいただければ幸いです....