以编程方式创建的 Dijit.Editor 中的 onchange 事件

onchange event in dijit.editor created programmatically

本文关键字:Editor 中的 onchange 事件 Dijit 编程 方式 创建      更新时间:2023-09-26

我正在以编程方式创建dojo小部件,一个dijit.editor,并添加一个onchange事件以将此小部件的内容复制到隐藏字段。

代码或多或少是这样的:

<div id="myEditor" onchange="myFunction()"></div>
<script>
    dojo.require("dijit.Editor");
    dojo.ready(function(){
         new dijit.Editor({
         height: "60px",
         plugins: []
        }, "myEditor");
    });
</script>

但问题是 onchange 事件永远不会被触发,所以 myFunction 永远不会被调用,隐藏字段永远不会更新。

我对你们的问题是,如果以编程方式创建这样的小部件,是否需要另一种方法来添加 onchange 或任何其他事件。

这对我有用:

<script>
    dojo.require("dijit.Editor");
    dojo.ready(function () {
        var myEditor = new dijit.Editor({
            height: "60px",
            plugins: [],
            onChange: function () {
                alert("Hooray it worked!");
            }
        }, "myEditor");
    });
</script>

<div id="myEditor"></div>

确保 onChange 的驼峰大小写正确。

编辑:这是一个声明性示例,以防您错过一个或多个这些想法,但似乎您正在走编程路线,所以如果适合您,可以坚持使用第一个示例:

<script>
    dojo.require("dijit.Editor");
    dojo.ready(function () {
        dojo.parser.parse();
    });
</script>

<div data-dojo-type="dijit.Editor" id="myEditor" 
    data-dojo-props="onChange:function(){alert('It worked!');}">
</div>