2010-08-12 64 views
2

我無法停止onClick事件? 如果我只用onclick事件使用dom節點,則dojo.stopEvent()可以使用,但不能使用小部件的onClick。 我收到錯誤「無法加載頁面...狀態0」。我發現當Ajax調用執行時頁面刷新時會發生這種情況。我張貼我的代碼。 任何幫助表示讚賞Dojo:無法停止「onClick」dijit事件

// 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

您可以在onClick處理函數取消表單提交返回false

+0

感謝.....我甚至試過沒有任何成功....頁面立即開始刷新一次阿賈克斯後完成 – rahul 2010-08-12 16:29:50

2

我剛剛嘗試過使用窗口小部件和常規按鈕,並且我可以通過這兩種方式來獲取按鈕的單擊處理程序以阻止事件提交窗體。只有

DOM:http://jsbin.com/inoyo4/edit

小工具:http://jsbin.com/ayomu4/edit

注意,與DOM我連接到onclick同時用我的小部件連接到onClick。駱駝案例符號由dijit定期使用,並且dijit小部件包含許多事件鉤子,這些鉤子映射到小部件內的節點上的標準DOM事件(小寫)。不幸的是,這會造成混亂。

你會發現這個值得一讀:http://docs.dojocampus.org/quickstart/events

1
var f=dijit.byId("id"); 
f.set("onClick",function(){;});