2012-04-04 146 views
4

我有一個SharePoint列表的文本字段的下面一行:TitleYearType or Location。我希望能夠以默認顯示形式隱藏Type or Location表格行。我知道我應該創建一個JavaScript腳本並將它放在DispForm.aspx中的Content Editor Web部件中。如何根據字段名稱(jQuery)隱藏SharePoint顯示錶單中的字段?

我不熟悉jQuery語法,因此我需要幫助代碼,即我不知道如何引用包含Type or Location字段及其值的錶行。這是我到目前爲止已經完成,但它不工作:

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

我知道"input[title='Type or Location']"部分是不正確;至少我認爲是這樣。任何人都可以幫我嗎?謝謝。

+0

這是DispForm.aspx?如果是這樣,那麼頁面上是否有真正的輸入控件?標準的單行文本字段不會在DispForm.aspx的輸入字段內呈現。此外,您正在使用哪個版本的SharePoint? – 2012-04-04 14:59:01

+0

是的,我知道'input ...'是錯誤的。我使用它,因爲代碼實際上是從另一個腳本中獲取的,其中添加新項目表單是使用jQuery修改的。SharePoint版本是2010.感謝您在下面提供正確的答案。 – Boris 2012-04-05 08:43:18

回答

9

嘗試:

jQuery(document).ready(function($) { 
    $("h3.ms-standardheader:contains('Type or Location')").closest("tr").hide(); 
}); 
+0

非常感謝。 – Boris 2012-04-05 08:40:41

+0

這工作完美隱藏整個行(標籤加字段)。謝謝豐富 – Axiom 2015-01-05 15:46:49

0

試試這樣說:

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

我不確定我是否足夠清楚,「類型或位置」只是一個列表字段的標題(或列表列,如果它對您更有意義)。問題在於它無法找到最接近的''標籤,然後將其隱藏起來。 – Boris 2012-04-04 11:57:41

+0

你有沒有嘗試'pravAll'查找''。你可以得到所有的tr集合,並得到':first' of tr? – Jigs 2012-04-04 12:02:56

+0

由於您想要在頁面加載後立即隱藏這些元素,爲什麼不設置style =「display:none;」服務器端還是樣式表? – 2012-04-04 12:05:56

0

這要看是什麼類型的列鍵入IOR位置是。如果它是單行文本,那麼你就近了。您應該使用像IE的開發工具或Firebug這樣的DOM檢查器來查看輸入元素的實際標題是什麼。

如果列是不同的類型,則很可能不能輸入元件。再次使用DOM檢查器,您可以查看構成字段控件的元素並根據該選擇器決定選擇器。

最後,請記住,在腳本中隱藏的東西是不安全的。精明的用戶可以關閉該腳本或以其他方式更改腳本,以便他們可以對其進行編輯。這完全取決於你的要求。

// // UPDATE 啊,你說DispForm。正如在另一個答案中指出的那樣,DispForm中沒有任何輸入元素。你需要糾正你的選擇。

2

我不知道你爲什麼要使用jQuery了點。在SharePoint中,您可以選擇創建必需的字段,可選或隱藏。在大多數情況下,只需切換到隱藏狀態即可解決您的問題。

爲了記錄,我也儘量避免使用jQuery(document).ready,它可能與SharePoint onload事件衝突。在你的情況下,它不是必需的。

更新:這裏有一個方法使用jQuery做到這一點:

$("td.ms-formlabel:contains('Type or Location')").parent().hide(); 
+0

我想使用jQuery而不是簡單地隱藏字段的原因是因爲我只是不希望它在DispForm.aspx中可見,但我確實希望它通過編輯和添加新窗體可供用戶使用。 – Boris 2012-04-05 08:11:00

+0

Christophe有一個觀點。將[ShowInDisplayForm](http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.spfield.showindisplayform.aspx)設置爲false也將隱藏顯示窗體上的字段,同時仍然使其在其他窗體中可用形式和觀點。雖然jQuery也可以這樣做,但jQuery真正發揮的作用在於,它可以用於根據其他條件(列表項中的其他條目的值,當前用戶等)有條件地隱藏字段,而無需創建自定義字段類型。 – 2012-04-05 12:59:48

+0

@Boris好吧,明白了。我已經添加了一個代碼示例。我的第二個評論仍然有效,你不應該需要jQuery(document).ready。 – Christophe 2012-04-05 19:41:02

0

的語法應該是這樣的:

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

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

它將工作。

0

如果它只是默認顯示窗體,那麼只需創建一個視圖並將其設置爲默認值即可?

+1

歡迎來到Stack Overflow!這真是一個評論,而不是一個答案。有了更多的代表,[你將能夠發表評論](http://stackoverflow.com/privileges/comment)。 – 2012-11-20 19:05:19

+0

@AR Ebhendra Pagoti,感謝您的建議。這絕對是一種可行的方式,但我實際上受到只允許腳本編寫的業務的限制。 – Boris 2012-11-21 12:21:33

相關問題