使用AddEventListener保存事件,然后在SharePoint表单中添加附件时,请勿触发



我正在使用IE11,JavaScript和SharePoint2013。有一个主页打开一个新表单选项卡(NewForm.aspx(添加或编辑选项卡表单(EditForm.aspx(来编辑记录。

当用户保存在"新表单"选项卡中时,它将保存数据,刷新主页并关闭"新表单"选项卡。

当用户保存在"编辑表单"选项卡中时,它保存数据,刷新主页,刷新编辑表单选项卡并留在该编辑表单选项卡记录上。

这与下面提供的代码非常有用,除非用户通过SP功能区中的"附加文件"按钮附加文件。它进入保存点击事件,击中window.addEventListener并跳过它。将用户默认回到SP库AllItems.aspx列表。

我尝试将代码仅在"保存单击"中放置,而不是将代码放在the nunload事件侦听器中,但是附件不会保存到项目中。

我尝试捕获文件附加事件($('input[id=attachOKbutton]')(并添加一个toferload侦听器。

再次,即使用户附加文件,也要保存记录并留在"编辑"选项卡上。

$(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选项卡上,但没有使用附加的附件更新记录。

所需的/预期结果:在用户保存而无需添加附件的情况下,执行与此操作完全一样……呼叫页面已更新,更新了编辑页面,并且用户停留在编辑页面上。当用户还添加附件时,这需要发生。

最终在带有editform url的保存事件上设置了一个会话cookie,并在allitems.aspx中对其进行测试,因此,如果true,它将重定向到特定的编辑记录页面。

最新更新