在textarea上使用append时jQuery会触发什么事件?

时间:2017-08-02 12:20:46

标签: javascript jquery events append textarea

我正在尝试监控textarea中的任何更改:

<textarea id="log-box__data"></textarea>

通过jQuery append对textarea 完全进行了更改:

$(document).on('click', '#myBtn', function(e) {
  $('#log-box__data').append('someText' + '\n');
});

当textarea append [ed]的某些内容被触发时会触发什么事件?

而且,如果没有,我该如何监控这一变化?

我尝试的事情:

$(document).on('input change keyup paste', '#log-box__data', function() {
  alert( "foobar" );
});

单击#myBtn时,这些事件都不会触发。

2 个答案:

答案 0 :(得分:1)

追加后使用触发功能会有帮助

$(document).on('click', '#myBtn', function(e) {
  
  $('#log-box__data').append('someText' + '\n');
  $('#log-box__data').trigger("change");
  
});

$('#log-box__data').on('change', function(e) {
  alert( "foobar" );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="log-box__data"></textarea><br />
<button id="myBtn">add text</button>

答案 1 :(得分:0)

追加不是一个好主意,并且设置一个值永远不会调用onchange事件,所以尝试下面的代码来手动触发

 $("#myBtn").bind("click",function(){
     $("#log-box__data").val("yourtexthere").trigger('change');
 });