表单提交后无法阻止页面重定向

时间:2015-12-10 07:05:45

标签: javascript jquery sharepoint sharepoint-online

我正在使用Sharepoint online 2015.在创建列表项期间,我需要保存列表项并将页面重定向到创建的列表项的EditForm.aspx而不是AllItems.aspx。

以下是该按钮的html代码:

<button type="button" id="idSaveProceed">Save & Proceed</button>

以下是用于保存列表项并将其重定向到“编辑”表单的jQuery代码:

$("#idSaveProceed").click(function(event){
         event.preventDefault();
        if (!PreSaveItem()) return false;
        if (SPClientForms.ClientFormManager.SubmitClientForm('WPQ2')) return false;
        WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(elementName, "", true, "", "", false, true));

        GetListItemId(); // This will redirect the page to EditFoem.aspx;
    });

但是当代码if (SPClientForms.ClientFormManager.SubmitClientForm('WPQ2'))执行时,页面重定向发生在AllItems.aspx上。我甚至在WebForm_DoPostBackWithOptions中提供了自定义网址。但在该代码执行之前,页面将被重定向。

我尝试使用event.preventdefault()但没有用。

请告诉我这里缺少的东西。提前谢谢。

注意:我不想使用InfoPath。我只想在jQuery中使用一个解决方案来解决这个问题。

3 个答案:

答案 0 :(得分:3)

您还需要更新

    < form id="aspnetForm" action="< url >?Source=...">

源参数

查看此网址。 http://formsdesigner.blogspot.in/2013/04/redirect-after-sharepoint-form.html

但是好奇你怎么会得到新提交的项目ID?

答案 1 :(得分:1)

您正在客户经理声明中发布表单。

这将调用服务器端代码,而不是转到下一行。

您可以使用Ajax调用发送表单发布调用,然后重定向页面。

答案 2 :(得分:0)

在点击事件结束时返回false

$("#idSaveProceed").click(function(event){
if (!PreSaveItem()) return false;
if (SPClientForms.ClientFormManager.SubmitClientForm('WPQ2')) return false;
WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(elementName, "", true, "", "", false, true));return false;});