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方法。

修改方式如下:

window.savefun = GetUrlKeyValue;

window.GetUrlKeyValue = function (keyName, bNoDecode, url, bCaseInsensitive) {

if (keyName != "Source") {

return window.savefun(keyName, bNoDecode, url, bCaseInsensitive);

}

else {

return "/Lists/CustList/NewForm.aspx";

}

}

首先我需要把原先的GetUrlKeyValue方法保存起来,然后覆盖默认的GetUrlKeyValue方法。这是的函数调用情况

由于GetUrlKeyValue函数的覆盖是在 “保存新建 ”按钮事件里面,所以 当我进入页面后 直接点击 “保存” 按钮 页面跳转到AllItems.aspx,直接点击“保存新建” 按钮跳转到NewForm.aspx页面,但是 如果 点击“保存新建” 按钮时, 客服端 有error的时候,当我们修改数据后 点击“保存” 按钮时,这个时候就有问题(页面跳转到NewForm.aspx页面而不是AllItems.aspx),找了很久也没找到客服端真正验证的地方(如果大家知道的还请指教,反正不是后面这句代码
if (!PreSaveItem()) return false;if (SPClientForms.ClientFormManager.SubmitClientForm(‘WPQ2‘)) return false),最后无赖只好通过setInterval方法来检查页面是否有error信息,如果有 我们就把GetUrlKeyValue方法还原。

最终的代码如下:

 <script type="text/javascript" src="/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="SaveAndNew" id="btnsaveAndNew" /></td><td class="ms-separator"> </td>';
            $(strsaveAndNew).insertBefore(tableSave);

            window.savefun = GetUrlKeyValue;
            $("#btnsaveAndNew").click(function () {
                window.btnsaveAndNew = true;

                window.GetUrlKeyValue = function (keyName, bNoDecode, url, bCaseInsensitive) {
                    if (keyName != "Source") {
                        return window.savefun(keyName, bNoDecode, url, bCaseInsensitive);
                    }
                    else {
                        return "/Lists/CustList/NewForm.aspx";
                    }
                }

                $(btnsave).click();
                window.btnsaveAndNew = false;
            });

        });
        setInterval(function () {
            var errors = $("span[id^='Error_']");
            if (errors.length > 0 && !window.btnsaveAndNew) {
                window.GetUrlKeyValue = window.savefun;
            }
        }, 100);
    </script>

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

Sharepoint2013 列表的NewForm 页面添加一个 保存新建 按钮,布布扣,bubuko.com

时间: 2024-10-17 17:13:19

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

Sharepoint2013 列表的NewForm 页面加入一个 保存新建 button

昨天一同事问我怎样在sharepoint2013的NewForm.aspx页面上加入一个 save and new的button.实现save 和new的功能.save的功能和默认的save按钮效果一至. 效果如图: 这里的思路例如以下: 1)用juqery来动态加入一个saveandnew的button 2)新建button的click事件将要调用默认save button的click方法 3)新button的click事件后页面跳转主要取决于url的Source參数.所以我们必须改写获取该參

【全网最全的博客美化系列教程】07.添加一个分享的按钮吧

全网最全的博客美化系列教程相关文章目录 [全网最全的博客美化系列教程]01.添加Github项目链接 [全网最全的博客美化系列教程]02.添加QQ交谈链接 [全网最全的博客美化系列教程]03.给博客添加一只萌萌哒的小仓鼠 [全网最全的博客美化系列教程]04.访客量统计的实现 [全网最全的博客美化系列教程]05.公告栏个性时间显示的实现 [全网最全的博客美化系列教程]06.推荐和反对炫酷样式的实现 [全网最全的博客美化系列教程]07.添加一个分享的按钮吧 [全网最全的博客美化系列教程]08.自定义

jsp页面添加一个集合数组到action(用序列化提交)

页面的js //点击a标签增加删除 var i=0; $("#a").on("click",function(){ var $newtr = $("<tr id='model'>" +"<td><input type='text' name='contactsList["+i+"].contactName' value=''></td>" +"<

博客园页面添加返回顶部TOP按钮

1. 进入网页管理->设置 2. 在"页面定制CSS代码"中添加如下css样式,当然你可以改为自己喜欢的样式 #back-to-top { background-color: #00CD00; bottom: 0; box-shadow: 0 0 6px #00CD00; color: #444444; padding: 10px 10px; position: fixed; right: 50px; cursor: pointer; } 3. 在"页脚Html代码&q

angular js 页面添加数据保存数据库

一.编写实体类Controller层返回数据使用 package entity; import java.io.Serializable; public class Result implements Serializable{ private static final long serialVersionUID = -8946453797496982517L; private boolean success; private String message; public Result(bool

js 正则表达式 验证 ip列表--详情:页面中一个输入框,可输入1个或多个IP,使用英文逗号隔开

var isIp = function (){     var regexp = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;                  return function(value){         var valid = regexp.test(value);         if(!valid){//首先必须是 xxx.xxx.xxx.xxx 类型的数字,如果不是,返回false             return false;

Bootstrap方法为页面添加一个弹出框

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Bootstrap 实例 - 弹出框(Popover)插件</title> <link rel="stylesheet" href="https://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap

C# 在PDF页面添加打印按钮

简述 在文档中设置按钮给我们提供了一种快速操作文档的方式,简洁省事,应用于程序中能够有效的提升客户满意度.在前一篇文章中讲述了如何在PDF文档中设置页面的跳转按钮,包括跳转至指定页,包括首页.下一页.上一页.最后一页,同时也可以自定义跳转页.本篇文章将介绍如何在PDF文档页面中添加打印按钮. 使用工具 Spire.PDF for .NET 版本 4.0注:安装该类库后,注意在项目程序中添加引用Spire.Pdf.dll.dll文件可以在安装路径下的Bin文件夹中获取. 代码示例(供参考)步骤 1

jQuery复习—用jQuery为页面添加活力

用jQuery为页面添加活力 一.元素节点操作 1.创建元素节点     为了使页面更加智能化,有时我们想动态的在 html 结构页面添加一个元素标签 var box = $('<div id="box">节点</div>'); //创建一个节点 $('<img>', { src: 'images/little.bear.png', alt: 'Little Bear', title: 'I woof in your general directio