Dojo:无法停止“onClick”dijit事件

时间:2010-08-12 07:17:17

标签: php javascript events dojo

我无法阻止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);
    }); 

3 个答案:

答案 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来取消表单提交。