当textarea的值发生变化时,是否有任何事件被执行?

时间:2016-06-18 15:37:22

标签: javascript jquery html

以下是我的代码的简化代码段:



$("#textarea_id").on('input propertychange', function(e){
	alert('the value of textarea changed');
});

$("#bold").on('click', function(e){
	$("#textarea_id").val('bold');
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id = "textarea_id"></textarea>
<br>
<button id = "bold">
B
</button>
&#13;
&#13;
&#13;

我希望当该textarea的值更改(以任何方式)alert。正如你所看到的那样,当我们在某个textarea中写入内容时,它就会运行,但是当我们点击那个按钮时(而它应该是,因为当我们点击该按钮时,该textarea的值会发生变化) 。如何使其对每种变化都敏感?

1 个答案:

答案 0 :(得分:2)

您可以使用change事件。但是,以编程方式更改值不会自动触发事件处理程序。

要触发事件处理程序,可以使用trigger(event)

  

执行附加到给定事件类型的匹配元素的所有处理程序和行为。

另请注意:.change()只是.trigger('change')

的简写

&#13;
&#13;
$("#textarea_id").on('input change', function(e){
	alert('the value of textarea changed');
});

$("#bold").on('click', function(e){
	$("#textarea_id").val('bold').trigger('change');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id = "textarea_id"></textarea>
<br>
<button id = "bold">
B
</button>
&#13;
&#13;
&#13;