2010-10-31 42 views
2

正如我的問題的標題所述。每當輸入元素的值發生變化時,我希望它執行一個函數。我知道該函數正在工作,因爲我已經在onkeyup等onkey事件中進行了測試。但是,我不會使用onkey事件,因爲我有腳本來操縱輸入元素的值。我也知道問題在於addEventListener方法的第一個參數。我已經討厭像DOMAttrModified /更改/ DOMsomethingelse各種參數,但它不起作用。我也在SO,JS Events: hooking on value change event on text inputs中看過一些類似的問題。下面的代碼適用於onkey事件:輸入元素的值發生了變化:做些什麼

inputTitle.addEventListener('DOMAttrModified',function(event){ 
     someFunction(this.value); 
},false); 

有人可以幫助我。我試圖解決這個問題很長一段時間,現在沒有成功,我知道這也只是一個小問題。請給我一些經過測試和工作的代碼示例。

更新: 我一直在錯以上的一件事。如果我使用「更改」事件,該函數將在焦點放在輸入元素上後執行。所以它確實有效。但我希望它能像onkeyup事件一樣工作,其中的功能就像Google即時一樣實時執行。不幸的是,我不能使用'keyup'事件,因爲我有som腳本或者說有一個按鈕正在修改輸入元素的值。當這些腳本運行時,該功能不會被執行。

UPDATE2: 我想出了一個解決這個問題的方法。並且它是爲了執行「someFunction」的valemodifyings腳本添加額外的腳本。我不太喜歡這個解決方案,因爲它不是很好的編碼。我也許四個劇本,該函數

+0

無法手動讓你值修改代碼火聽衆? – thejh 2010-10-31 21:11:15

+1

爲什麼'onchange'事件不起作用?只要焦點離開*和*輸入字段的內容發生變化,它就會被觸發。 – 2010-10-31 21:11:35

+0

您可以使用'key'事件(*,如您陳述的*)或'onchange'事件,當元素失去焦點時觸發(*在更改內容後* ..) – 2010-10-31 21:13:50

回答

6

試試這個電話:

inputTitle.addEventListener("change", function(){}); 
相關問題