列表的表单,有个类似的需求:在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之后,就可以隐藏,禁用,改背景色等。
全文完!