2015-02-26 3 views
0

Я работаю форму додзё, и я пытаюсь улучшить обработчики событий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 шаблона.

+0

'this' не будет указывать на виджет. Вам нужно использовать 'registry.byId (« resetButton »). On (« click », function (e) {...}'. Также обратите внимание, что вам нужно объявить атрибут ** id ** для ** resetButton * * в теге кнопки. – frank

+0

Я пробовал это - но получаю ошибку, определяющую - http://jsfiddle.net/aGCFs/260/ –

+0

Пожалуйста, удалите свой ответ, потому что это не ответ, это обновление вопроса , вы можете просто обновить вопрос. –

ответ

1

есть множественная ошибка в коде первым вы не вызывая 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") у не имеют кнопок с помощью кнопки ид, так что вам нужно указать конкретную кнопку Я БЫ. вроде этого:

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

Проверьте jsffidle.

, если нажать на кнопку NextTab он покажет журнальное сообщение консоли

+0

, но не работает над этой формой - http://jsfiddle.net/aGCFs/265/ - для кнопка сброса фактической формы - она ​​не вызывается on (dom.byId («resetButton»), «щелчок», функция (e) { console.log (кнопка сброса была нажата!); }); –

+0

Можете ли вы мне объяснить, что вы хотите? хотите ли вы прослушивать кнопку сброса при щелчке или хотите использовать функциональные возможности сброса, предоставленные додзе? и можете ли вы удалить свой ответ, потому что это не ответ, это просто обновление для вопроса. –

+1

Посмотрите на это, он будет слушать кнопку сброса http://jsfiddle.net/aGCFs/276/ –

1

Вы должны добавить готовый модуль функции требуется. Затем вызовите весь код с готовым модулем в обратном вызове.

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 

}); 
+0

http://jsfiddle.net/aGCFs/279/ - последняя форма –

+0

http://jsfiddle.net/aGCFs/287/ - последняя версия - в отношении использования вызовов ajax - как можно было бы создать новые поля ввода после слушая, скажем, понижающее изменение - мне нужно подражать ему, выполняя вызов ajax, возвращая значения поля ввода и хорошо отображая его в форме –