我正在使用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中使用一个解决方案来解决这个问题。
答案 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;});