4

我有一个 SharePoint 列表,其中包含以下单行文本字段TitleYearType or Location. 我希望能够Type or Location在默认显示表单中隐藏表格行。我知道我应该创建一个 JavaScript 脚本并将其放在 DispForm.aspx 内的内容编辑器 Web 部件中。

我不熟悉 jQuery 语法,因此我需要代码方面的帮助,即我不知道如何引用包含Type or Location字段及其值的表行。这是我到目前为止所做的,但它不起作用:

jQuery(document).ready(function($) {
   $("input[title='Type or Location']").closest("tr").hide();
});

我知道这"input[title='Type or Location']"部分不正确;至少我认为是这样。谁能帮帮我?谢谢你。

4

6 回答 6

10

尝试:

jQuery(document).ready(function($) {
   $("h3.ms-standardheader:contains('Type or Location')").closest("tr").hide();
});
于 2012-04-04T15:12:38.453 回答
2

我不确定您为什么要为此使用 jQuery。在 SharePoint 中,您可以选择将字段设为必填、可选或隐藏。在大多数情况下,只需切换到隐藏即可解决您的问题。

作为记录,我也会尽量避免使用 jQuery(document).ready,它可能会与 SharePoint 开箱即用的 onload 事件发生冲突。在你的情况下,它是不需要的。

更新:这是使用 jQuery 执行此操作的一种方法:

$("td.ms-formlabel:contains('Type or Location')").parent().hide();
于 2012-04-04T16:40:11.160 回答
0

语法应该是这样的:

$("input[title='Type']").closest("tr").hide();

$("input[title='Location']").closest("tr").hide();

它会起作用的。

于 2012-05-14T11:34:53.667 回答
0

如果它只是默认显示表单,那么创建一个视图并将其设为默认值怎么样?

于 2012-11-20T18:45:20.463 回答
0

试试这种方式:

jQuery(document).ready(function($) {
   $("input[title='Type'],input[title='Location']").closest("tr").hide();
});
于 2012-04-04T11:52:10.140 回答
0

这取决于 Type ior Location 是什么类型的列。如果它是单行文本,那么你就很接近了。您应该使用 DOM 检查器(如 IE 的开发人员工具或 Firebug)来查看输入元素的实际标题是什么。

如果列是不同的类型,那么它可能不是输入元素。再次使用 DOM 检查器,您可以查看组成字段控件的元素并从中决定您的选择器。

最后,请记住,将内容隐藏在脚本中并不安全。精明的用户可以关闭脚本或以其他方式更改脚本,以便他们可以编辑它。这一切都取决于您的要求。

// 更新 // 啊,你说的是 DispForm。正如另一个答案中指出的那样,DispForm 中没有任何输入元素。您需要更正您的选择器。

于 2012-04-04T11:57:08.260 回答