首页 > 代码库 > Sharepoint2013 列表的NewForm 页面添加一个 保存新建 按钮

Sharepoint2013 列表的NewForm 页面添加一个 保存新建 按钮

昨天一同事问我如何在sharepoint2013的NewForm.aspx页面上添加一个 save and new的button。实现save 和new的功能,save的功能和默认的save按钮效果一至。

效果如图:

这里的思路如下:

1)用juqery来动态添加一个saveandnew的button

2)新建按钮的click事件将要调用默认save 按钮的click方法

3)新按钮的click事件后页面跳转主要取决于url的Source参数,所以我们必须改写获取该参数的方法,该参数的读取是在init.debug.js的GetUrlKeyValue方法。

修改方式如下:

  var fun = GetUrlKeyValue;
                window.GetUrlKeyValue = http://www.mamicode.com/function (keyName, bNoDecode, url, bCaseInsensitive) {
                    if (keyName != "Source") {
                        return fun(keyName, bNoDecode, url, bCaseInsensitive);
                    }
                    else {
                        return "/Lists/CustList/NewForm.aspx";
                    }
                }

首先我需要把原先的GetUrlKeyValue方法保存起来,然后覆盖默认的GetUrlKeyValue方法。

最终的代码如下:

 <script type="text/javascript" src=http://www.mamicode.com/"/siteassets/js/jquery.js"></script>    <script type="text/javascript">        $(document).ready(function () {            var btnsave = $("input[id*=‘diidIOSaveItem‘]")[1];            var tableSave = $(btnsave).parents(".ms-toolbar").eq(0);            var strsaveAndNew =  <td class="ms-toolbar" nowrap="nowrap"><input type="button" value="http://www.mamicode.com/SaveAndNew" id="btnsaveAndNew" /></td><td class="ms-separator"> </td>;            $(strsaveAndNew).insertBefore(tableSave);                   $("#btnsaveAndNew").click(function () {                var fun = GetUrlKeyValue;                window.GetUrlKeyValue = function (keyName, bNoDecode, url, bCaseInsensitive) {                    if (keyName != "Source") {                        return fun(keyName, bNoDecode, url, bCaseInsensitive);                    }                    else {                        return "/Lists/CustList/NewForm.aspx";                    }                }                $(btnsave).click();            });        });    </script>

有不对的地方 还请大家拍砖