Este é outro post em meu série em curso sobre como usar jQuery com o SharePoint.
Se você quer aprender mais sobre jQuery, Eu recomendo: jQuery em ação por Bibeault de urso e Yehuda Katz.
Anteriormente, Eu escrevi sobre como usar jQuery para localizar e ocultar um campo de texto em um formulário. Não me importava para o enfoque específico (Foi de encadeamento pais – que simplesmente não é feito hoje em dia, pelo menos em famílias de qualidade).
Quando comecei a pensar nisso, Eu sabia que precisava encontrar um <TR> ao qual eu poderia invocar a ocultar() Método. Meu esforço inicial para encontrar o correto <TR> foi algo assim:
$(' tr:tem(entrada[título = esconder-Me!])');
O problema é que que ele iria encontrar cada <TR> marca que tinha qualquer relação de pai para a ocultar-Me! campo, mesmo que Me esconder! é aninhado profundamente em muitos níveis <TR>é. Acontece que no meu formulário de caixa de areia, Essa expressão encontra 9 TR diferentes que têm Me esconder! como uma criança em algum lugar na sua árvore DOM. Eu percebi que eu poderia andar volta para a árvore do campo entrado própria, então é isso, como eu acabei abusando de pais, mas ele não se sente bem comigo.
Eu dei algum pensamento para isso e uma das coisas que li finalmente fez sentido: Eu poderia usar o não() Método para cortar fora <TR>é que não quero no meu conjunto de quebra automática. Isso me levou a isto:
$(' tr:tem(entrada[título = esconder-Me!])').não(' tr:tem(TR)').esconder();
O primeiro bit encontra todos os <TR> marcas que têm a esconder-Me! campo em qualquer lugar na sua própria hierarquia. Ele então retira qualquer <TR> que também tem um filho <TR>. Isto nos deixa com um único <TR> que:
1) Não tem nenhum <TR> registros filho
2) Tem o campo de entrada como criança.
Podemos então aplicar a ocultar() Método para o resultante definido e pronto.
Ainda estou um pouco nervoso sobre isso, mas não tão nervoso como pais de encadeamento.
Não sei se isso é uma prática recomendada ou não. Pode haver uma maneira mais adequada de identificar apenas o <TR> que nos interessa em um formulário do SharePoint. Se você sabe, por favor, poste um comentário.
</fim>
Siga-me no Twitter em http://www.twitter.com/pagalvin
Oi Paulo,
Paul Culmsee de soluções alternativas inteligentes escreveu um artigo sobre exatamente o mesmo problema. (encontrando o TR correto para ocultar um campo) usando JavaScript simples, Não jQuery. Ele encontrou uma maneira universal para encontrar a TR para esconder, é no fim deste blogpost : http://www.cleverworkarounds.com/2008/02/07/more-sharepoint-branding-customisation-using-javascript-part-1/
esperança que aquilo ajuda,
Jonathan
Pingback: Ocultar um campo em um formulário de edição de SharePoint com base em outros valores « jbmurphy.com