2011-11-21 77 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