2011-09-26 80 views
0

我有一个用户可以输入文本的文本框。文本框所在的区域可以用不同的HTML重新加载,具体取决于用户的操作,我希望文本框能够“记住”用户在返回时键入的内容。自动保存文本框内容

问题始于用户可以从文本框中导航的许多不同方式 - 他可以将许多不同的HTML片段加载到我的操作区域,每个都会擦除文本框。

有没有办法让我在保存文本内容的时候全面保存?是否有相当于文本框的onUnload()事件?

有两种方法我可以看到这将解决我的问题:

  1. 设置文本框看门狗功能,存储在内存中,每当用户键入任何更新文本。
  2. 为每个重新加载操作区域的函数添加saveText()调用。

这些都不是特别吸引人。有没有更好的方法来做到这一点?

感谢,

回答

1

onchange是你在找什么。当用户退出文本框时,会触发change事件。

onchangeonblurfocusout一个更好的选择,因为blurfocusout当文本字段的内容没有改变也火了。

一个基本的例子:

var textarea = document.getElementById("myTextfield"); 
textarea.onchange = function(ev){ 
    call_function_that_saves(this.value); 
} 

一种unload事件非嵌入式元件不存在。考虑当这样一个事件处理程序存在时会发生什么,并且一个巨大的页面卸载。