在ajax刷新后保存并恢复动态表单值

时间:2013-07-12 14:46:12

标签: javascript ajax

有一个页面,用户可以在任何所需的帖子上发表评论。每个帖子都有一个只有一个texsrea字段的表单,这个字段是从js动态创建的,我想知道是否有人知道如何保存和恢复用户输入的注释(即保存用户在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内容,则用户会丢失正在键入的内容。

很高兴能够了解这个想法....

1 个答案:

答案 0 :(得分:0)

当页面被完全加载时,

window.onload会激活,所以我不认为这适用于你的情况。

为什么在AJAX完成后你不尝试使用回调函数,这样你就可以通过调用localStorage来“恢复”信息?

注意:对不起,我还没有发表评论。