【发布时间】:2019-06-21 19:43:24
【问题描述】:
我正在使用 IE11、JavaScript 和 SharePoint 2013。有一个主页可以打开一个新的表单选项卡 (NewForm.aspx) 以添加或编辑选项卡表单 (EditForm.aspx) 以编辑记录。
当用户在新表单选项卡中保存时,它会保存数据、刷新主页并关闭新表单选项卡。
当用户在编辑表单选项卡中保存时,它会保存数据、刷新主页、刷新编辑表单选项卡并停留在该编辑表单选项卡记录上。
这非常适用于下面提供的代码,除非用户通过 SP 功能区中的“附加文件”按钮附加文件。它进入保存点击事件,点击window.addEventListener,然后跳过它。用户默认返回到 SP 库 AllItems.aspx 列表。
我已尝试将代码仅放入保存单击而不是 beforeunload 事件侦听器中,但附件未保存到项目中。
我已尝试捕获文件附加事件 ($('input[id=attachOKbutton]')) 并添加 beforeunload 侦听器。
同样的问题是保存记录并保留在 EditForm 选项卡上,即使用户附加了文件。
$(function() {
$('input[value=Save]').click(function() {
window.addEventListener("beforeunload", function(event) { //does not go in here if file is attached
var idxForm = location.pathname.indexOf("NewForm.aspx");
if( idxForm >= 0 ) { //NewForm - Saving a new record
window.opener.location.reload(); //Refresh calling page
window.close();
}
var idxForm2 = location.pathname.indexOf("EditForm.aspx")
if( idxForm2 >= 0 ) { //EditForm - Saving an update to a existing record
window.opener.location.reload(); //Refresh calling page
history.go(-1);
location.reload(true);
}
});
});
});
实际结果:记录与附件一起保存并且用户被定向到 SP 库 AllItems.aspx 或者用户停留在 EditForm.aspx 选项卡上但记录未使用添加的附件进行更新。
期望/预期结果:执行与用户保存而不添加附件时完全相同...调用页面更新,编辑页面更新,用户停留在编辑页面上。当用户添加附件时也需要这样做。
【问题讨论】:
标签: javascript jquery sharepoint-2013 addeventlistener