2013-11-24 83 views
2

我写了一个脚本,它自动保存textarea的onchange事件中的textarea值。我面临的问题是,当用户键入内容并突然停止时,直到用户点击屏幕上的其他位置才会触发onchange。是不是可以让我的脚本工作方式,当用户停止在textarea上打字:自动保存更改事件

<textarea onchange="onautosave()" id="autosave" ></textarea>让我们说5秒,然后功能onautosave()被触发?请让我现在怎么做。谢谢

+0

您可能会使用keyup和keydown ..但想想一种方法来防止您的服务器被保存请求溢出;) – jantimon

回答

2

您可以使用onkeyup事件和setTimeout()触发自动保存。下面是代码(只勾勒整个事情)

HTML

<textarea onkeyup="autosave()" id="autosave" ></textarea> 

JS

var autosave_timer = null; 

function save() { 
    // actual save code 
} 

function autosave() { 
    if(autosave_timer) 
     clearTimeout(autosave_timer); 

    autosave_timer = setTimeout(save, 5000); 
} 

请注意楔子超时。它有助于不会压倒服务器。

+0

如果我没有错,回答的代码只适用于定时器,定时器只会启动,然后当用户停止在textarea上打字? – user3027531

+0

计时器将从第一个输入的字符开始,并在每个下一个输入的字符上重置。但重要的是,可以说计时器在用户停止输入时开始。 – twil

+0

感谢twil,我想要... – user3027531