2011-11-16 61 views
0

你好最親愛的社區。爲什麼我在Dojo表單中的xhrpost不會打電話?

我在最近兩天裏有麻煩,我無法解決。 問題是我有一個Dojo表單定義是這樣的:

<div id="reportBulananDialog" jsId="reportBulananDialog" dojoType="dijit.Dialog" title="Laporan Bulanan" draggable="true"> 
     <div dojoType="dijit.form.Form" id="reportBulananForm" jsId="reportBulananForm" action="action/display_reportBulanan.php" method="post"> 
... 

而且在這樣定義的一個script.js文件連接呼叫:

dojo.connect(mnuLaporanBulanan, "onClick", null, function(e) { 
     dijit.byId("reportBulananDialog").show(); 
    }); 
dojo.connect(reportBulananForm, "onSubmit", null, doReportBulananForm); 
    dojo.connect(reportBulananCancel, "onClick", null, function(e) { 
     reportBulananDialog.hide(); 
    }); 

你可以看到,我連接onSubmit事件起作用doReportBulananForm定義如下:

function doReportBulananForm() 
{ 
    alert('test1'); 
    dojo.xhrPost({ 
     form: this.domNode, 
     handleAs: "json", 
     load: function(data) { 
      alert("after call: " + data); 
      if(data.success) { 
       reportBulananDialog.hide(); 
       okDialog.set("title","Menampilkan report"); 
       okDialogMsg.innerHTML = "Report"; 
       okDialog.show(); 
      } 
      else { 
       okDialog.set("title","Error creating group"); 
       okDialogMsg.innerHTML = data.error; 
       okDialog.show(); 
      } 
     }, 
     error: function(error) { 
      okDialog.set("title","Error creating group"); 
      okDialogMsg.innerHTML = error; 
      okDialog.show(); 
      alert("error " + data); 
     } 
    }); 
    alert('test2'); 
} 

問題是,應用程序總是將應用程序流重定向到文件action/display_reportBulanan.php,未處理其json輸出。

這很混亂,我做錯了什麼?

感謝, 了Eko

回答

2

我認爲你必須防止默認的形式提交。 在你的onsubmit處理,而是執行此操作:

function doReportBulananForm(evt) 
{ 
    evt.preventDefault(); 
    alert('test1'); 
    // The rest of your code goes here 
} 

您還可以在連接添加事件參數的函數調用:

dojo.connect(reportBulananForm, "onSubmit", null, doReportBulananForm(evt)); 

看到這個網頁的詳細說明:http://dojotoolkit.org/reference-guide/quickstart/events.html

+0

謝謝@Philippe!是的,我省略了evt作爲'doReportBulanan'的參數。但在'dojo.connect'中,我認爲沒有必要使用參數聲明doReportBulananForm。我把它作爲以前的電話。 – swdev

相關問題