我无法阻止onClick
事件?
如果我只使用带有onclick
事件的dom节点,则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);
});
答案 0 :(得分:2)
我只是尝试使用小部件和常规按钮,我可以通过两种方式获取按钮的单击处理程序,以阻止事件提交表单。
仅限DOM:http://jsbin.com/inoyo4/edit
小部件:http://jsbin.com/ayomu4/edit
请注意,对于DOM,我使用小部件连接到onclick
时,我会连接到onClick
。 dijit定期使用camel-case表示法,dijit widgets包含许多事件挂钩,这些挂钩映射到窗口小部件节点上的标准DOM事件(小写)。不幸的是,这可能引起混淆。
您可能会发现这值得阅读:http://docs.dojocampus.org/quickstart/events
答案 1 :(得分:1)
var f=dijit.byId("id");
f.set("onClick",function(){;});
答案 2 :(得分:0)
您可以在false
处理函数中返回onClick
来取消表单提交。