Dojo表单处理事件



我在dojo表单中工作,我正在努力改进事件处理程序

http://dojotoolkit.org/reference-guide/1.10/dojo/on.html

我当前的应用程序。http://jsfiddle.net/aGCFs/254/

on(this.resetButton, "click", function(e) {
    return confirm('Press OK to reset widget values');
});

它过去是如何工作的。

http://jsfiddle.net/aGCFs/252/

html模板页面上的事件内联脚本。

您的代码中有多个错误,首先您没有像下面的那样调用on回调

require(["dojo/dom", "dojo/on", "dojo/domReady!"], function (dom,on) {
    on(dom.byId("button"), "click", function (e) {
        console.log("My button was clicked!");
    });
});

第二个步骤是dom.byId("button")u并没有带id按钮的按钮,所以需要指定一个特定的按钮id,如下所示:

require(["dojo/dom", "dojo/on", "dojo/domReady!"], function (dom,on) {
    on(dom.byId("nextTab"), "click", function (e) {
        console.log("My button was clicked!");
    });
});

检查jsffindle。

如果单击nexttab按钮,它将显示控制台日志消息

您需要将ready模块添加到require函数中。然后在回调中使用就绪模块调用整个代码。

require([
    "dojo/ready", // add the ready module
    "dojo/parser",
    "dojo/on",
    "dijit/registry",
    "dijit/layout/ContentPane",
    "dijit/layout/TabContainer",
    "dijit/form/ValidationTextBox",
    "dijit/form/DateTextBox",
    "dijit/form/Select",
    "dijit/form/Form",
    "dijit/form/Button",
    "dojo/domReady!"], function (ready, parser, on, registry, ContentPane) {
    // call your the code in the callback.
    ready( function() {
      var progTabCounter = 1;
      makeTab = function () {
         var tc = registry.byId("mainTabContainer");
         var cp = new ContentPane({
             title: 'Programmatically created tab ' + (progTabCounter++),
             closable: true
         });
      cp.domNode.innerHTML = "I was created programmatically!";
      tc.addChild(cp, 0);
     };
    prevTab = function () {
       var tc = registry.byId("mainTabContainer");
       console.log("prev tab", tc);
       var currIndex = tc.getIndexOfChild(tc.selectedChildWidget);
       var tabs = tc.getChildren();
       if (currIndex > 0) {
        tc.selectChild(tabs[currIndex - 1]);
       }
     };
    nextTab = function () {
        var tc = registry.byId("mainTabContainer");
        console.log("next tab", tc);
        var currIndex = tc.getIndexOfChild(tc.selectedChildWidget);
        var tabs = tc.getChildren();
        if (currIndex < tabs.length - 1) {
          tc.selectChild(tabs[currIndex + 1]);
        }
   };

    registry.byId("resetButton").on("click", function(e) {
        console.log("clicked on reset");
        return confirm('Press OK to reset widget values');
    });
    }); // end of ready call
 });

最新更新