2015-05-08 99 views
1

我有一個HTML網頁上我的input S中的下列事件偵聽器:jQuery的輸入事件 - 觸發(「變」)不會吧

$('input').on('input', function (e) { 
    console.log(this.value); 
}); 

我明白input事件捕獲以下個別事件changekeyuppaste

當我使用jQuery更新輸入值時,我想觸發此事件,以便我的事件代碼運行。如果我運行:

//Does not work 
$('input').val('test').trigger('change'); 

我的事件不會觸發。我期望input事件處理程序捕獲change事件。如果我運行:

//Does work 
$('input').val('test').trigger('input'); 

確實工作......爲什麼觸發change事件不火我input事件處理程序?

+1

不,「ininput」事件不會響應'onchange'事件。他們是不同的。如果一個事件觸發其他事件,那將是一個令人困惑的世界。 – dfsq

+0

http://jsfiddle.net/arunpjohny/e0xr8u0x/1/ - 輸入事件確實觸發 –

+1

檢查[this](http://stackoverflow.com/questions/17384218/jquery-input-event)可能對您有所幫助 –

回答

3

我希望輸入事件處理程序能夠捕獲更改事件。

這就是你出錯的地方 - input事件處理程序不會捕獲change事件。

+0

我以爲是嗎?那麼它會捕捉哪些事件? – keldar

+0

輸入事件緩存輸入事件。期 –