2016-06-18 32 views
0

這裏是我的代碼簡單的代碼片段:textarea的值更改時是否執行了任何事件?

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

 
$("#bold").on('click', function(e){ 
 
\t $("#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>

我希望看到alert當textarea的值更改(以任何方式)。正如你所看到的,當我們在這個textarea中寫入東西的時候,它會運行,但是當我們點擊那個按鈕(雖然它應該是,因爲當我們點擊那個按鈕時,那個textarea的值會改變)。我怎樣才能使它對每一種變化都很敏感?

回答

2

您可以使用change事件。但是,通過編程方式更改值不會自動觸發事件處理程序。

要觸發事件處理程序,可以使用trigger(event)

執行附加到給定事件類型的匹配元素的所有處理程序和行爲。

還要注意:.change()僅僅是.trigger('change')

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

 
$("#bold").on('click', function(e){ 
 
\t $("#textarea_id").val('bold').trigger('change'); 
 
});
<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>

速記
相關問題