SharePoint 2016中如何隐藏OOTB URL字段的描述?
针对你不想仅依赖JavaScript移除URL列描述框默认提示的需求,我整理了几个更原生的解决方案,你可以根据场景选择:
1. 通过Schema.xml自定义URL字段(适用于新建自定义列表)
如果是创建全新的自定义列表,直接在schema.xml里定义专属URL字段,就能从根源去掉描述框的占位提示:
在列表的schema.xml文件中,添加或修改URL类型字段的定义,重点调整EditFormPattern里描述输入框的placeholder属性:
<Field Type="URL" DisplayName="自定义URL" Required="FALSE" EnforceUniqueValues="FALSE" Indexed="FALSE" Format="Hyperlink" ID="{你的GUID}" StaticName="CustomURL" Name="CustomURL"> <DisplayPattern> <!-- 保留默认显示逻辑或按需修改 --> <IfEqual> <Expr1><Column/></Expr1> <Expr2/> <Then/> <Else> <HTML><![CDATA[<a href="]]></HTML> <Column HTMLEncode="TRUE"/> <HTML><![CDATA[" target="_blank">]]></HTML> <IfEqual> <Expr1><Column Name="Description"/></Expr1> <Expr2/> <Then><Column HTMLEncode="TRUE"/></Then> <Else><Column Name="Description" HTMLEncode="TRUE"/></Else> </IfEqual> <HTML><![CDATA[</a>]]></HTML> </Else> </IfEqual> </DisplayPattern> <EditFormPattern> <!-- URL输入框部分 --> <HTML><![CDATA[<input type="text" title="]]></HTML> <Property Name="Title"/> <HTML><![CDATA[" class="ms-long" id="]]></HTML> <Property Name="FieldName"/> <HTML><![CDATA[" name="]]></HTML> <Property Name="FieldName"/> <HTML><![CDATA[" value="]]></HTML> <Column HTMLEncode="TRUE"/> <HTML><![CDATA[" /><br>]]></HTML> <!-- 描述输入框:清空placeholder移除默认提示 --> <HTML><![CDATA[<input type="text" title="]]></HTML> <Property Name="Description"/> <HTML><![CDATA[" class="ms-long" id="]]></HTML> <Property Name="FieldName"/> <HTML><![CDATA[_Description" name="]]></HTML> <Property Name="FieldName"/> <HTML><![CDATA[_Description" value="]]></HTML> <Column Name="Description" HTMLEncode="TRUE"/> <HTML><![CDATA[" placeholder=""/>]]></HTML> </EditFormPattern> </Field>
部署该自定义列表后,URL字段的描述框就不会显示默认提示了。
2. 服务器端编程修改现有字段(CSOM/SSOM)
如果是已存在的列表和URL字段,可以通过服务器端代码修改字段的编辑表单渲染逻辑:
使用SSOM(SharePoint Server Object Model)
using (SPSite site = new SPSite("http://你的站点URL")) { using (SPWeb web = site.OpenWeb()) { SPList targetList = web.Lists["目标列表名称"]; SPFieldUrl urlField = targetList.Fields["你的URL字段名称"] as SPFieldUrl; if (urlField != null) { // 替换渲染模板中描述框的占位提示为空 string editRenderPattern = urlField.EditFormRenderPattern; editRenderPattern = editRenderPattern.Replace(@"placeholder=""Type the description""", @"placeholder="""); urlField.EditFormRenderPattern = editRenderPattern; urlField.Update(); targetList.Update(); } } }
注意:直接修改OOTB字段可能影响其他依赖场景,推荐先复制该字段为自定义字段,再修改复制后的版本,避免意外问题。
使用CSOM(Client Side Object Model)
如果需要在客户端环境操作,也可以用CSOM实现类似逻辑,核心是修改字段的EditFormRenderPattern属性。
3. 自定义列表表单(InfoPath可视化方案)
SharePoint 2016支持用InfoPath设计列表编辑表单,这是无代码的可视化方案:
- 打开目标列表,点击列表设置 → 表单设置,选择“使用InfoPath编辑表单”
- 在InfoPath设计器中,找到URL字段的描述输入框
- 选中输入框,在右侧属性面板中找到占位符文本选项,清空内容
- 发布表单到SharePoint,刷新列表后,描述框的默认提示就会消失
注意事项
- 所有方案建议先在测试环境验证,避免影响生产数据
- 如果不需要描述功能,甚至可以直接隐藏描述框(在schema或表单中移除对应控件),效果更彻底
- 对比JavaScript方案,原生方案的优势是不依赖前端脚本加载,兼容性更稳定
内容的提问来源于stack exchange,提问作者Madhu Menon
相关产品推荐
相关产品推荐

