【发布时间】:2013-07-12 14:46:12
【问题描述】:
有一个页面,用户可以在任何想要的帖子上制作 cmets。每个帖子都有一个表单,其中只有一个从 js 动态创建的 textarea 字段,我想知道是否有人知道如何保存和恢复用户输入的评论(即保存用户迄今为止在 ajax 刷新之前输入的任何内容div持有所有post和cmets,然后在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 和在每个帖子上创建的 cmets。因此,该 div 会每 3 秒刷新一次以获取最新帖子和评论,如果用户正在输入以对帖子发表评论并且 ajax 重新加载 div 内容,则用户会丢失正在输入的任何内容。
很高兴能得到这方面的想法....
【问题讨论】:
-
顺便说一句:您永远不需要在事件处理程序中使用“javascript:”。你只能使用 JavaScript。
-
哦,谢谢...编辑了问题...您有更好的方法来实现这个目标,因为根据我在问题中提出的问题,我无法让它工作???
-
AJAX 的全部意义在于页面不刷新。您没有正确处理您的表格。如果页面正在刷新,那么您使用的是常规旧浏览器 POST。
-
哦,不......页面不刷新,而是 ajax 刷新包含帖子的 div,每个帖子都带有一个评论表单......所以每当 ajax 刷新该 div 内容时,无论输入什么的评论表格将丢失。所以我只需要确保在 ajax 重新加载 div 内容后,它不会影响评论的表单字段(即用户不会丢失在 ajax 刷新最新内容之前输入的任何内容)......我希望你明白挑战是什么是..
-
然后更改代码,使其不会刷新 DIV。
标签: javascript ajax