Как получить старое значение текстовой области - PullRequest
1 голос
/ 07 марта 2011

Вот и все.Как я могу получить старое значение текстовой области, чтобы сравнить его с новым значением?Текущее значение становится старым после запуска события (скажем, события keyup).

Я видел несколько решений, например, использование файлов cookie для записи старого значения и нового значения, однако такое решениене работает в моем случае из-за типа манипуляции, которую я хочу выполнить позже.

Надеюсь, есть предложение, которое работает лучше, чем это.

Заранее спасибо.

ОБНОВЛЕНИЕ :

Следуя некоторым советам @drachenstern, @Matthew, @Peter, я получил что-то вродеthis

var startTimer = null;
var oldValue;
$("#textarea").keydown($.debounce( 1000, true, function(){
oldValue = $("#textarea").val();
}
));

$("#textarea").keyup(function(){
if(startTimer) clearTimeout(startTimer);
startTimer = setTimeout(function(){
var newValue = $("#textarea").val();
d = // here a clever comparison
oldValue = newValue;
},2000);
})

Кстати, $.debounce - это функция из плагина jQuery throttle / debounce.

Это именно то, что я хочу, однако я бы хотел получитьпеременная d вне функции setTimeout и функции keyup, чтобы использовать ее в другом месте.Тем не менее, clearTimeout кажется сложным, когда дело доходит до возвращаемых значений.Любой способ получить значение d?.

1 Ответ

3 голосов
/ 07 марта 2011
var oldValue = document.getElementById("textareaid").value;

document.getElementById("textareaid").onchange = function(){
  var newValue = this.value;
  //Compare oldValue and newValue
  oldValue = newValue;
}
...