我写了一个脚本来切换一些SharePoint表单域。我已经让它们在页面加载时隐藏,但我无法让它们显示,因为我不知道如何确定formfield控件的id将是什么。
我曾想过在请求类型行中添加一个id,但我怀疑它会有什么用,因为它是控件本身,而不是它所占用的tr
变化。有什么建议吗?
实际上,如果我能想出一种方法来获取SharePoint:FormField
的fieldname属性,那将是我首选的方法。
<script type="text/javascript">
$(document).ready(function(){
$("tr.anon").hide();
$("tr.reqDet").hide();
$("#ff5{$Pos}").change(function(){
$(".anon").toggle();
});
$("#ff3{$Pos}").change(function(){
$("#ff4{$Pos}").toggle();
});
});
</script>
<tr>
<td width="190px" valign="top" class="ms-formlabel">
<H3 class="ms-standardheader">
<nobr>Request Type<span class="ms-formvalidation"> *</span></nobr>
</H3>
</td>
<td width="400px" valign="top" class="ms-formbody">
<SharePoint:FormField runat="server" id="ff3{$Pos}" ControlMode="New" FieldName="requestType" __designer:bind="{ddwrt:DataBind('i',concat('ff3',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@requestType')}"/>
<SharePoint:FieldDescription runat="server" id="ff3description{$Pos}" FieldName="requestType" ControlMode="New"/>
</td>
</tr>
<tr class="reqDet">
<td width="190px" valign="top" class="ms-formlabel">
<H3 class="ms-standardheader">
<nobr>Request Details</nobr>
</H3>
</td>
<td width="400px" valign="top" class="ms-formbody">
<SharePoint:FormField runat="server" id="ff4{$Pos}" ControlMode="New" FieldName="requestDetails" __designer:bind="{ddwrt:DataBind('i',concat('ff4',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@requestDetails')}"/>
<SharePoint:FieldDescription runat="server" id="ff4description{$Pos}" FieldName="requestDetails" ControlMode="New"/>
</td>
</tr>
非常感谢!
答案 0 :(得分:2)
那些看起来很时髦的ID,你确定它们有效吗?如果是,那么你将需要使用此方法从javascript / jQuery访问FormField控件(或任何服务器端控件):
var myFormField = $("#<%= #ff5{$Pos}.ClientID %>");
答案 1 :(得分:0)
使用多种方式进行jquery选择,如下所示。这甚至可以在您拥有外部JavaScript文件时使用
var stDateField = $(":input[title='Start Time']").val();