创建后将onchange事件添加到javascript小部件

时间:2011-11-21 21:40:55

标签: javascript dojo

我有以下代码段:

    var divCombo = new dijit.form.ComboBox({
        id: "clientDivision",
        name: "clientDivision.name",
        value:"${project?.clientDivision?.encodeAsHTML()}",
        required: "true",
        store: divStore,
        pageSize:"15"
    },divisionNode);

    divCombo.onchange = function(){
            setCbHiddenId(this, 'clientDivision.id');
    };

这似乎没有触发setCbHiddenId函数。我在divCombo组合框中更改了值,并且firebug永远不会停留在脚本中设置的断点处。

我到底做错了什么?我试图在事后定义它,因为它需要在onchange函数中引用它自己。

1 个答案:

答案 0 :(得分: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');
})