2016-02-26 24 views
6

我安裝使用如何以編程方式觸發沒有jQuery的「輸入」事件?

var element = document.getElementById('some-input'); 
element.addEventListener('input', function() { 
    console.log('The value is now ' + element.value); 
}); 

正如預期的那樣,當我輸入到文本字段處理程序觸發的input事件處理程序,但我也需要從我的代碼中調用這個處理程序。我如何模擬input事件,以便我的事件偵聽器被調用?

+0

可能重複http://stackoverflow.com/questions/2381572/how-can-i-trigger-a-javascript-event-click – user2473779

+1

@u ser2473779那裏的答案意味着我應該執行'element.input()',但這不是一個有效的方法。 – bdesham

+0

http://jsfiddle.net/mendesjuan/rHMCy/4/:從@Juan Mendes的回答中檢查這個小提琴 – user2473779

回答

20

觸發與普通的JavaScript事件的正確方法,是創建一個事件對象,並派遣其

var event = new Event('input', { 
    'bubbles': true, 
    'cancelable': true 
}); 

element.dispatchEvent(event); 

FIDDLE

在此不支持IE,爲的是OLD-老式的方式仍然有可能被用來

var event = document.createEvent('Event'); 
event.initEvent('input', true, true); 

elem.dispatchEvent(event); 
+1

這不適用於IE瀏覽器,甚至沒有IE 11。 –

相關問題