I created a javascript code to save the contents of a textarea whenever someone types inside of it, and it seemed to be working fine at first, but after looking, it seems to be delayed, or rather, behind by one keydown.
<textarea id="call_desk_content" style="width:80%; height:350px;">
</textarea><br />
<strong><small>Last Saved: <span id="date_save">Before Reload or Page Change</span>.</small></strong>
<script type="text/javascript">
//check if "call_desk_content" is in localStorage
if (localStorage["call_desk_content"])
{
var call_desk_content = localStorage["call_desk_content"] ;
document.getElementById("call_desk_content").value = call_desk_content ;
}
else
{
document.getElementById("call_desk_content").placeholder = "" ;
console.log("call_desk_content no found in localStorage")
}
//save entered content
document.getElementById("call_desk_content").addEventListener("keydown", function ()
{
var call_desk_content = document.getElementById("call_desk_content").value;
//localStorage["call_desk_content"] = call_desk_content ;
localStorage.setItem("call_desk_content", call_desk_content);
console.log("Saved");
var d = new Date(),
seconds = d.getSeconds().toString().length == 1 ? '0'+d.getSeconds() : d.getSeconds(),
minutes = d.getMinutes().toString().length == 1 ? '0'+d.getMinutes() : d.getMinutes(),
hours = d.getHours().toString().length == 1 ? '0'+d.getHours() : d.getHours(),
ampm = d.getHours() >= 12 ? 'pm' : 'am',
months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
days = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];
var hours = d.getHours();
if (hours > 12) {
hours -= 12;
} else if (hours === 0) {
hours = 12;
};
var date_save = document.getElementById("date_save").ierHTML = days[d.getDay()]+' '+months[d.getMonth()]+' '+d.getDate()+' '+d.getFullYear()+' at '+hours+':'+minutes+':'+seconds+ampm;
} , false);
</script>
Basically, if I type two letters into the textarea, then reload the page to check if it saved, it will only show one letter.
I have also set this up to display text below the textarea that tells the user when the last save was, and that seems to update properly when the keydown is triggered.
