2011-11-16 67 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

相关问题