SharePoint js操作原生的New/Edit表单

列表的表单,有个类似的需求:在New需隐藏特定字段,Edit时显示。
默认是New/Edit表单的字段是一样,就算在Content type 是隐藏也是同时影响两个表单。
 
如何做到仅仅在New时隐藏呢?
思路:在SharePoint Designer中,修改列表的New表单,加入JS,控制CSS属性达到效果。
其中有两点:
1. JS代码段应该放在那里?
2. 怎么定位到字段,代码如何写?
 
以下方法使用的JQuery库,需要引入js。例子中已经在母版页中引入了。
 
步骤:
1. 在目标列表中,点击“新建项目”,在Ribbon中点击“编辑页面”,“添加Web部件”,加入“内容编辑器”WebPart,保存页面并退出。
 
注意:默认新建项目时是弹出层方式,不能编辑页面,所以先改页面方式。在列表设置-->高级设置 中改,如下图:
 
2.使用SharePoint Designer打开网站,找到目标列表,点开,找到New表单,右键“在高级模式下编辑文件”
 
3.找到刚添加的“内容编辑器”WebPart,在<Content>节点中间,添加JS代码:
 
JS参考代码如下:自行引入JQuery库
 
<![CDATA[<script type="text/javascript">
function GetNodeByInternalName(internalName)
    {
        var returnVal = null;
        $("td.ms-formbody").each(function(){
 
        try{                                        
            var patt = new RegExp('FieldInternalName="' + internalName + '"' ,"i");
            if(patt.test($(this).html()))
            if(returnVal == null)
            {
            returnVal = $(this);
            return false;
            }
        }
        catch (err)
        {}
        });
        return returnVal;
    }
$(document).ready(function(){
     //隐藏column
     GetNodeByInternalName("StartTime").parent().hide();
});
</script>]]>

 

JS 获取Dom之后,就可以隐藏,禁用,改背景色等。

全文完!



posted on 2014-01-03 17:26  向振文  阅读(1016)  评论(0编辑  收藏  举报