我的小部件制作表单但是发生的事件不会发生。当单击该按钮时,它应该获取输入框中的值,然后将其放入正在请求的URL中,然后将该页面粘贴到结果div中。
编辑注意:发现如果我有没有dijit按钮类型的searchNode,则事件可以正常工作,但如果我应用了dojo-data-type,那么它就没有了。
窗口小部件:
/**
* Widget for creating a quick search form.
*/
define([
"dojo/_base/declare",
"dojo/request",
"dijit/_WidgetBase",
"dijit/_OnDijitClickMixin",
"dijit/_TemplatedMixin",
"dijit/_WidgetsInTemplateMixin",
"dijit/form/Button",
"dijit/form/TextBox",
"dojo/text!./templates/quickSearch.html"
],function(declare, request, _WidgetBase, _OnDijitClickMixin, _TemplatedMixin, _WidgetsInTemplateMixin, Button, TextBox, template){
return declare("js/widget/SASearch", [_WidgetBase, _OnDijitClickMixin, _TemplatedMixin, _WidgetsInTemplateMixin], {
// set our template
templateString: template,
// some properties
baseClass: "searchWidget",
// define an onClick handler
_onClick: function() {
var query = this.queryNode.value;
alert(query);
request("quick/" + query).then(
function(text) {
this.resultsNode.innerHTML = text;
alert(text);
},
function(error) {}
);
}
});
});
模板:
<div class="${baseClass}">
<div class="${baseClass}Query" data-dojo-attach-point="queryNode" data-dojo-type="dijit/form/TextBox"></div>
<div class="${baseClass}Search" data-dojo-attach-point="searchNode" data-dojo-type="dijit/form/Button" data-dojo-attach-event="ondijitclick:_onClick">Search</div><br />
<div class="${baseClass}Results" data-dojo-attach-point="resultsNode"></div>
</div>
答案 0 :(得分:0)
您的活动必须
data-dojo-attach-event="onClick:_onClick"
在按钮上。
同样对于请求的返回,您将不得不使用dojo.hitch来阻止它。 http://jsfiddle.net/theinnkeeper/qum452gm/