這是另一個帖子中的我 系列 有關如何使用 jQuery 使用 SharePoint.
如果您想要瞭解更多關於 jQuery, 我強烈建議你: jQuery 在行動 由熊 Bibeault 和 Routes.
以前, 我寫了關於如何使用 jQuery 來查找和隱藏表單的文字欄位. 我不在乎的具體辦法 (我被束縛的父母 — — 那只是不做這些天, 至少在家庭的品質).
當開始去想它, 我知道我需要去找 <TR> 我可以調用隱藏() 方法. 我找到正確的早期努力 <TR> 這像是:
$(' tr:已(輸入[標題 = 隱藏我!])');
問題是它會找到每個 <TR> 我有任何父關係到隱藏的標記! 欄位, 即使隱藏我! 是多層深的嵌套 <TR>的. 原來,在我的沙箱表單, 該運算式找到 9 不同 TR 的有隱藏我! 作為一個孩子在其 DOM 樹的某個地方. 我意識到,能回到上一棵樹從輸入欄位本身走, 這就是我如何結束濫用父母, 但它不好我坐在一起.
給這一些想法和我讀了最後的事情之一是合情合理的: 我可以用不() 方法以修剪出 <TR>我不想在我包裝一套. 我被引到這:
$(' tr:已(輸入[標題 = 隱藏我!])').不(' tr:已(tr)').隱藏();
第一位發現所有 <TR> 我有隱藏的標記! 他們自己層次結構中任何位置的欄位. 它然後帶出任何 <TR> 那也有一個孩子 <TR>. 這使我們與單 <TR> 那:
1) 有無 <TR> 子記錄
2) 沒有輸入的欄位作為孩子.
然後,我們可以應用隱藏() 設置到結果的方法和我們做完了.
我還是有點緊張, 但作為連結的父母不一樣緊張.
我不知道這不是是一種最佳做法. 可能更適當的方式確定的只是 <TR> 我們關心的 SharePoint 表單中. 如果你知道, 請張貼評論.
</結束>
跟我在 Twitter 上 http://www.twitter.com/pagalvin
嗨保羅,
Paul Culmsee 的聰明的解決方法寫了一篇有關完全相同的問題 (找到正確的 TR 要隱藏的欄位) 使用純 JavaScript, jQuery 不. 他找到通用的方法找到 TR 要隱藏, 它是在結束了這個改版 : http://www.cleverworkarounds.com/2008/02/07/more-sharepoint-branding-customisation-using-javascript-part-1/
希望它可以説明,
喬納森 ·
pingback的: 隱藏基於其他值的 SharePoint 編輯表單中的欄位 « jbmurphy.com