Dojo:无法停止“onClick”dijit 事件
Posted
技术标签:
【中文标题】Dojo:无法停止“onClick”dijit 事件【英文标题】:Dojo : Unable to stop "onClick" dijit event 【发布时间】:2010-08-12 07:17:17 【问题描述】:我无法停止onClick
事件?
如果我只是将 dom 节点与onclick
事件一起使用,那么dojo.stopEvent()
可以工作,但不能与小部件的onClick
一起使用。
我收到错误 “无法加载页面 ... 状态 0”。我发现在执行 Ajax 调用时页面刷新时会发生这种情况。我正在发布我的代码。
任何帮助表示赞赏
// create a button which will be replaced by the Button widget
var submitButton = dojo.create('button', type:"submit", id:"submitButton", popupFormControlDiv);
var popupFormSubmitButton = new dijit.form.Button(label: "Create", type:"submit", "submitButton");
dojo.connect(popupFormSubmitButton, "onClick", function(event)
//Stop the submit event since we want to control form submission.
event.preventDefault();
event.stopPropagation();
dojo.stopEvent(event);
// construct the arguments for the post request
var xhrArgs =
form: popupForm,
url: "/admin/sys-config/registration-form/add",
handleAs: "text",
load: function(data)
console.log("success");
,
error: function(error)
console.log("error");
var deferred = dojo.xhrPost(xhrArgs);
);
【问题讨论】:
【参考方案1】:我刚刚尝试使用小部件和常规按钮,两种方法都可以让按钮的点击处理程序阻止事件提交表单。
仅限 DOM:http://jsbin.com/inoyo4/edit
小部件:http://jsbin.com/ayomu4/edit
请注意,使用 DOM 我连接到onclick
,而使用小部件我连接到onClick
。 dijit 经常使用驼峰式表示法,并且 dijit 小部件包含许多事件挂钩,这些挂钩映射到小部件内节点上的标准 DOM 事件(小写)。不幸的是,这可能会导致混乱。
您可能会发现这值得一读:http://docs.dojocampus.org/quickstart/events
【讨论】:
【参考方案2】:var f=dijit.byId("id");
f.set("onClick",function(););
【讨论】:
【参考方案3】:您可以在onClick
处理函数中返回false
来取消表单提交。
【讨论】:
谢谢.....我什至尝试过但没有成功......一旦Ajax帖子完成,页面立即开始刷新以上是关于Dojo:无法停止“onClick”dijit 事件的主要内容,如果未能解决你的问题,请参考以下文章
在dijit的图标按钮的点击加载的dijit日历的具体日期禁用
worklight 无法在真实设备上要求 DOJO Combobox - 无法加载... /dijit/form/nls/it/ComboBox.js