2

如何使用 jQuery 检测 textarea 的值是否发生变化?我目前正在使用 keyup() 但这当然会触发每个击键,如果它是按下的箭头键或任何其他对文本区域的值没有影响的键,我不希望我的代码运行。

看一看:

$('textarea').keyup(function() {
     if (content was changed)
         // Do something
});

我希望你明白。我怎样才能以最好的方式做到这一点?我不想将当前值与旧值进行比较以检查更改,我希望这不是唯一的方法。

4

2 回答 2

6

无论如何,最简单的方法是将旧值存储到数据中并在每个keyup. 该解决方案非常简短,并且在任何情况下都可以使用。无需重新发明轮子。

$("textarea").data("oldValue", function() {
    return this.value;
}).keyup(function() {
    var $this = $(this);
    if (this.value !== $this.data("oldValue")) {
        // Do something

        $this.data("oldValue", this.value);
    }
});

演示:http: //jsfiddle.net/vvbSj/

于 2013-02-12T11:20:45.147 回答
0
$('textarea').blur(function() {
  //This will be invoked when the focus is removed
});

$('textarea').change(function() {
  //Same as the blur
});

这是你想要的吗

于 2013-02-12T11:23:28.747 回答