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

Dojo Gridx 程序刷新显示没有数据

Dojo:如何设置禁用新按钮

Dojo dijit.form.select:创建新的选择小部件后,旧小部件的选定值无法更改

Dojo - dijit / ComboBox - 鼠标选择不起作用