SharePoint隐藏newform,dispform,editform中的字段

当我需要一些帮助时,我有一个任务.我想要完成的是以下..

>在SharePoint中隐藏newform,editform和dispform上的某些字段(2013)
>我试图隐藏的字段只是输入/文本框字段而不是与其关联的整个列/标题.基本上我有一个带有标题和相关文本框(单行文本)的表单,我想要做的只是隐藏文本框.

我使用F12 IE工具选择显示以下源代码的文本框:

<input title="Travel" class="ms-long ms-spellcheck-true" id="Travel_f6801fb9-c4ff-4109-acb9-f7dd63c1d98a_$TextField" type="text" maxlength="255" value="">

(文本框与我的“旅行”专栏相关联)

现在,当我选择这个时使用F12工具时,我在“内联样式”顶部标题下添加了一些css(我可以告诉),这是“display = none”和bingo它的工作原理!

现在我不能做的就是永久地将它添加到表单中.我试图通过在表单中​​添加内容Web部件并尝试一些CSS / Java脚本来谷歌这一点,但我根本没有这方面的技能..这有意义吗?

示例:《SharePoint隐藏newform,dispform,editform中的字段》

《SharePoint隐藏newform,dispform,editform中的字段》

任何帮助都会很棒

干杯!

最佳答案 在SharePoint 2013中引入了客户端呈现(又称CSR),用于呈现列表视图,列表表单和搜索结果.有关详细信息,请参阅
SharePoint 2013 Client Side Rendering: List Forms文章.

以下JavaScript模板演示了如何在“列表表单”页面中隐藏字段控件:

SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function() {

    SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
      OnPostRender: hideFieldControls
    });

});



function getFieldControlId(field){
   return field.Name + '_' + field.Id + '_$' + field.Type + 'Field';
}

function hideFieldControl(field){
   var fieldControlId = getFieldControlId(field);
   var fieldControl = document.getElementById(fieldControlId);
   fieldControl.style.display = "none";
}


function hideFieldControls(ctx){
    var fieldNamesToHide = ['JobTitle','WorkPhone'];  //<- set field names to hide here
    if(fieldNamesToHide.indexOf(ctx.ListSchema.Field[0].Name) > -1) {
        hideFieldControl(ctx.ListSchema.Field[0]);
    }
}

如何应用更改

>在编辑模式下打开列表表单页面
>在页面上添加脚本编辑器Web部件
>使用括起来插入指定的JavaScript模板
script tag注意:通过fieldNamesToHide变量指定要隐藏的字段名称
>保存页面

结果

图1.原始新表格页面

《SharePoint隐藏newform,dispform,editform中的字段》

PIC. 2自定义新表格(隐藏职位和商务电话的字段控件)
《SharePoint隐藏newform,dispform,editform中的字段》

点赞