Pergunta

Eu estou em um SharePoint forma de apresentação e quero fazer alguns cálculos no lado do cliente para preencher um espaço em branco a única linha de campo de texto.

Em um formulário de edição, para definir e selecionar o meu valor eu ter algo parecido com isto:

$("input[title='My Field Here']").value(time);

Mas a forma de apresentação parece ter valores muito diferentes (em uma tabela).Como eu poderia ir sobre a seleção de um valor do campo quando ele é armazenado como este com (aparentemente) sem identificadores exclusivos:

<td width="450px" valign="top" id="SPFieldDateTime" class="ms-formbody">
        <!-- FieldName="MyDate"
             FieldInternalName="MyDate"
             FieldType="SPFieldDateTime"
          -->
            3/26/2014

        </td>

Eu não acho que eu posso selecionar qualquer coisa com base no comentário que está lá (seria bom..), mas se todos os meus campos estão contidos em "td" e há mais do que um "SPFieldDateTime", como pode selecionar esse campo específico do valor de 3/26/2014?

editar:

Eu deixei esta parte que aparece logo acima da linha acima.

<a name="SPBookmark_MyDate"></a>
Foi útil?

Solução

Usando jQuery, encontrar o mais próximo item com um identificador único.Nem todos os campos em um formulário tem o id exclusivo, como você encontrou com os campos de data, que todos têm a id="SPFieldDateTime".O rótulo correspondente a coluna, no entanto, contém o nome do campo e este deve ser exclusivo.

enter image description here

Use o seu gancho.Em seguida, você pode ir para o irmão do único elemento com o nome de classe "ms-formbody".Por exemplo:

$('td.ms-formlabel:contains("Text2")').siblings(".ms-formbody").css("background", "yellow");

vai mostrar

enter image description here

Ou para recuperar o valor de texto usar algo como

$('td.ms-formlabel:contains("Text2")').siblings(".ms-formbody").text() 

por exemplo, em um alerta:

alert($('td.ms-formlabel:contains("Text2")').siblings(".ms-formbody").text()); 

enter image description here

Ou ocultar a linha completamente com

$('td.ms-formlabel:contains("Text2")').parent().hide();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top