我想检测<textarea>
元素的内容何时发生了变化。对于用户所做的更改,我可以在这些问题中使用解决方案:
可以检测按键,粘贴事件等。但是,如果数据是动态数据绑定的,例如使用AngularJS,MeteorJS等框架,那么我必须在数据绑定的框架中添加一个函数。功能
我是否可以使用Javascript或jQuery方法/事件监听器来检测内容更改,而无需在框架中添加它?
答案 0 :(得分:0)
您可以使用setInterval 这是jQuery的一个例子:
HTML
<textarea id="textarea"></textarea>
<a href="#" id="link">change text dynamicly</a>
<span id="status"></span>
的Javascript
$(function(){
$('#textarea').data('old',$('#textarea').val())
$('#link').on('click',function(){
$('#textarea').val('text changed dynamicly');
return false;
})
setInterval(function() {
if($('#textarea').val() != $('#textarea').data('old')){
$('#status').html('text of textarea is changed to : ' + $('#textarea').val())
}
$('#textarea').data('old',$('#textarea').val())
}, 100);
})
这是jsfiddle
中的演示