2013-11-24 58 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