【问题标题】:How do i add a redirecting link on a save button?如何在保存按钮上添加重定向链接?
【发布时间】:2017-11-04 01:20:16
【问题描述】:

我正在尝试让讨论区消息部分中的保存按钮返回团队网站,而不是停留在讨论区页面上。我一直在寻找几个小时,但我还没有找到很多。我试图插入这段代码:

<script type="text/javasccript">
$(document).ready(function() { 
  var button = $("input[id$=SaveItem]");
  // change redirection behavior
  button.removeAttr("onclick");
  button.click(function() {
  var elementName = $(this).attr("name");
  var aspForm = $("form[name=aspnetForm]");
  var oldPostbackUrl = aspForm.get(0).action;
  var currentSourceValue = GetUrlKeyValue("Source", true, oldPostbackUrl);
  var newPostbackUrl = oldPostbackUrl.replace(currentSourceValue, "mySite.aspx");
  if (!PreSaveItem()) return false;
  WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(elementName, "", true, "", newPostbackUrl, false, true));
  });
}); 
</script>

但它不起作用,我在 NewForm.aspx 中收到此错误:

语言过滤器:未连接

语言过滤器未连接。要连接语言过滤器,请打开 Web 部件编辑菜单并选择“连接”以将此语言过滤器连接到其他 Web 部件。

无论如何,我现在迷路了,任何帮助都会很棒。

【问题讨论】:

    标签: sharepoint sharepoint-2010


    【解决方案1】:

    您可以像这样更改新项目表单查询字符串的 Source 参数:

    http://siteurl/testing/teamsite/Lists/Team%20Discussion/New1.aspx?Source=siteurl
    

    当您单击取消或保存按钮时,页面将被重定向到指定的 url。那么覆盖保存按钮就不需要jquery了。

    更多详情请看这篇帖子http://sympmarc.com/2009/10/20/passing-a-source-parameter-on-the-query-string-with-multiple-other-parameters/

    【讨论】:

      【解决方案2】:

      它对我也不起作用,但我最终通过注释除第一个变量之外的所有行并将其输出到控制台来使它起作用。控制台输出告诉我 aspForm 为空。所以我当时就知道源代码中不存在“form[name=aspnetForm]”。通过检查源代码,我找到了 id=aspnetForm 的表单,所以我替换了那行代码,瞧!

      var aspForm = $("form[id=aspnetForm]");
      

      【讨论】:

        【解决方案3】:

        我已经看过很多关于如何做到这一点的帖子——没有SOURCE 查询字符串。

        所以我已经在 SharePoint 2013 中测试了这个解决方案几个小时。这个“保存”按钮完全按预期重定向;我让它重定向到"/Pages/default.aspx"

        $(document).ready(function() {
        
        var elementName;
        var oldPostbackUrl;
        var currentSourceValue;
        var newPostbackUrl;
        
        var button = $("input[id$=SaveItem]");
        
        // change redirection behavior
        button.removeAttr("onclick");
        button.click(function() {
          var elementName = $(this).attr("name");
          var aspForm = $("form[id=aspnetForm]");
          oldPostbackUrl = aspForm[0].action;
          currentSourceValue = GetUrlKeyValue("Source", true,    
          oldPostbackUrl);
          newPostbackUrl = oldPostbackUrl.replace(currentSourceValue, "/Pages/default.aspx");
        
        
          if (!PreSaveItem()) return false;
        
          WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(elementName, "", true, "", newPostbackUrl, false, true));
        
        
        }); //end button.click
        
        
        }); //end doc ready
        

        【讨论】:

        • 这不会保存布尔类型或多行文本的字段
        猜你喜欢
        • 1970-01-01
        • 2017-03-08
        • 1970-01-01
        • 1970-01-01
        • 2017-01-16
        • 1970-01-01
        • 2020-10-07
        • 1970-01-01
        • 2017-01-04
        相关资源
        最近更新 更多