创建后向javascript小部件添加onchange事件

Add onchange event to javascript widget after creation

本文关键字:添加 onchange 事件 小部 javascript 创建      更新时间:2023-09-26

我有以下代码片段:

    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.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');
})