2011-11-21 80 views
2

我有下面的代碼片段後添加到JavaScript的小部件。我在divCombo組合框中更改值,並且螢火蟲永遠不會停止在我的斷點set int腳本中。onchange事件創建

我究竟做錯了什麼?我試圖在事後定義它,因爲它需要在onchange函數中引用自身。

+0

divCombo是一個「dojo小部件(或dijit)對象」,而不是DOM對象。它不**具有「onchange」。相反,它是「onChange」(注意大寫)屬性。一般來說,小部件事件的混合情況和DOM事件的全部小寫。要獲取DOM對象,可以使用divCombo.domNode。不過,最好的做法是使用'dojo.connect'來連接你的事件。 –

回答

3

根據您的需要,您可以將小部件連接到某個功能,也可以觀看小部件的值(需要1.6+)。

連接方法。你需要確保'this'是正確的對象。在這個例子中,它是divCombo。此外,dijits使用大寫事件(onChange而不是onchange)

divCombo.connect(divCombo, 'onChange', function(newValue) { 
    setCbHiddenId(this, 'clientDivision.id'); 
}); 

手錶方法。再次,小心'this'內部的函數。

divCombo.watch('value', function(property, oldValue, newValue) { 
    setCbHiddenId(this, 'clientDivision.id'); 
}) 
+0

@missingno哈哈,是的。 http://stackoverflow.com/questions/5431381/dojo-connect-event-doesnt-get-called-why/5432451#5432451 –

+0

對不起,這應該是一個評論 – hugomg