我已经形成了如下所示的内容,它包含各种验证文本框和过滤器选择。 HTML:
<form dojoType="dijit.form.Form" id="Form2" action="" method="">
</form>
我正在尝试将onchange事件的表单连接到整个表单,但它不起作用,即如果我在过滤器选择或验证文本框中更改了某个值,则下面显示的事件不会触发?
任何人都可以在这方面帮助我吗?
var handle= dojo.connect(dijit.byId("Form2").domNode,'onchange',function()
{
console.log("I am inside the form");
dojo.disconnect(handle);
});
答案 0 :(得分:0)
假设您只在表单中使用dijit小部件,您可以轻松创建一个发出自定义事件的事件表单,如下所示:
define([
"dojo/_base/declare",
"dojo/_base/array",
"dojo/Evented",
"dijit/registry",
"dijit/form/Form"
], function(declare, array, Evented, registry, Form){
return declare([Form, Evented], {
postCreate : function() {
var self = this;
this.inherited(arguments);
// When any of my children changes, I emit a custom "change" event
array.forEach(registry.findWidgets(self.domNode), function(childWidget){
childWidget.onChange = function(){
self.emit("change", self.get("value"));
};
});
}
});
});
请参阅dojo/Evented文档和实例here。