Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的Dojo表单xhrpost赢了';你没接到电话吗?_Dojo - Fatal编程技术网

为什么我的Dojo表单xhrpost赢了';你没接到电话吗?

为什么我的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

你好,亲爱的社区

在过去的两天里,我遇到了无法解决的问题。 问题是我有一个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">
...
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更接近我现有的代码。