我有一列依赖于SharePoint 2013列表中另一列的结果。在我的显示形式中,如果第1列结果为是,则应该显示column2。如果为否,则应隐藏column2。
下面是我尝试但未能使其正常工作的脚本:
<script>
$(document).ready(function()
{
if($("#Column1").text()=="No")
{
$("#Column2a").hide();
$("#Column2b").hide();
}
else if($("#Column1").text()=="Yes")
{
$("#Column2a").show();
$("#Column2b").show();
}
});
</script>
在我的显示形式中,我将ID添加到column1和column2 tds。
<tr>
<td width="190px" valign="top" class="ms-formlabel">
<H3 class="ms-standardheader">
<nobr>Column 1</nobr>
</H3>
</td>
<td width="400px" valign="top" class="ms-formbody" id="Column1">
<xsl:value-of select="@Column1"/>
</td>
</tr>
<tr>
<td width="190px" valign="top" class="ms-formlabel" id="Column2a">
<H3 class="ms-standardheader">
<nobr>Column 2</nobr>
</H3>
</td>
<td width="400px" valign="top" class="ms-formbody" id="Column2b">
<xsl:value-of select="@Column2" disable-output-escaping="yes"/>
</td>
</tr>
我应该在代码中更改什么?
编辑:
为了更清楚,首先我编辑了显示表单并将ID添加到tds,然后我创建了我放在显示表单页面中的脚本。
答案 0 :(得分:1)
您需要修剪内容:
if($("#Column1").text().trim() == "No")
{
$("#Column2a").hide();
$("#Column2b").hide();
}
else if($("#Column1").text().trim() == "Yes")
{
$("#Column2a").show();
$("#Column2b").show();
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td width="190px" valign="top" class="ms-formlabel">
<H3 class="ms-standardheader">
<nobr>Column 1</nobr>
</H3>
</td>
<td width="400px" valign="top" class="ms-formbody" id="Column1">
No
</td>
</tr>
<tr>
<td width="190px" valign="top" class="ms-formlabel" id="Column2a">
<H3 class="ms-standardheader">
<nobr>Column 2</nobr>
</H3>
</td>
<td width="400px" valign="top" class="ms-formbody" id="Column2b">
test
</td>
</tr>
</table>
&#13;
就像一个想法,你可能想要隐藏行而不是列(如果你隐藏行中的所有列)