为什么我的Dojo表单xhrpost赢了';你没接到电话吗?
你好,亲爱的社区 在过去的两天里,我遇到了无法解决的问题。 问题是我有一个Dojo表单是这样定义的:为什么我的Dojo表单xhrpost赢了';你没接到电话吗?,dojo,Dojo,你好,亲爱的社区 在过去的两天里,我遇到了无法解决的问题。 问题是我有一个Dojo表单是这样定义的: <div id="reportBulananDialog" jsId="reportBulananDialog" dojoType="dijit.Dialog" title="Laporan Bulanan" draggable="true"> <div dojoType="dijit.form.Form" id="reportBulananForm" jsId
<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">
...
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事件连接到函数doreportbulannform
,定义如下:
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\u reportBulanan.php
,而不处理其json输出
这很令人困惑,我做错了什么
谢谢,
Eko我认为您必须阻止默认表单提交。 在onSubmit处理程序中,改为执行以下操作:
function doReportBulananForm(evt)
{
evt.preventDefault();
alert('test1');
// The rest of your code goes here
}
您还可以在connect中向函数调用添加事件参数:
dojo.connect(reportBulananForm, "onSubmit", null, doReportBulananForm(evt));
有关详细信息,请参见本页:我认为您必须阻止默认表单提交。 在onSubmit处理程序中,改为执行以下操作:
function doReportBulananForm(evt)
{
evt.preventDefault();
alert('test1');
// The rest of your code goes here
}
您还可以在connect中向函数调用添加事件参数:
dojo.connect(reportBulananForm, "onSubmit", null, doReportBulananForm(evt));
有关详细信息,请参阅此页面:您需要禁用默认表单提交。您可以在
doreportbulannform
函数中返回false
,也可以使用以下代码:
function doReportBulananForm(e) {
dojo.stopEvent(e);
}
有关更多详细信息,请参阅dojo的测试用例。请参见您需要禁用默认表单提交。您可以在
doreportbulannform
函数中返回false
,也可以使用以下代码:
function doReportBulananForm(e) {
dojo.stopEvent(e);
}
有关更多详细信息,请参阅dojo的测试用例。见谢谢@Philippe!是的,我省略了evt作为
doReportBulanan
的参数。但是在dojo.connect
中,我认为没有必要使用参数声明doreportbulannform。我把它当作上次的电话。谢谢@Philippe!是的,我省略了evt作为doReportBulanan
的参数。但是在dojo.connect
中,我认为没有必要使用参数声明doreportbulannform。我把它当作上次的电话。谢谢@AlexCheng。但我发现Philippe answer更接近我现有的代码。谢谢@AlexCheng。但我发现Philippe answer更接近我现有的代码。