Como posso definir/selecionar um campo no formulário de apresentação?
-
10-12-2019 - |
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>
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.
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
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());
Ou ocultar a linha completamente com
$('td.ms-formlabel:contains("Text2")').parent().hide();